/**
 * A specific IP:port target within a TargetProfile.
 */
export interface ITargetProfileTarget {
    ip: string;
    port: number;
}
/**
 * A reusable, named target profile that defines what resources a VPN client can reach.
 * Assigned to VPN clients via targetProfileIds.
 *
 * SourceProfile = source-side (who can access: ipAllowList, rateLimit, auth)
 * TargetProfile = target-side (what can be accessed: domains, IP:port targets, route refs)
 */
export interface ITargetProfile {
    id: string;
    name: string;
    description?: string;
    /** Domain patterns this profile grants access to (supports wildcards: '*.example.com') */
    domains?: string[];
    /** Specific IP:port targets this profile grants access to */
    targets?: ITargetProfileTarget[];
    /** Route references by stored route ID. Legacy route names are normalized when unique. */
    routeRefs?: string[];
    /** Also allow routes whose source security would allow the VPN client's real connecting IP. */
    allowRoutesByClientSourceIp?: boolean;
    createdAt: number;
    updatedAt: number;
    createdBy: string;
}
