export interface ResourceQuantity {
    readonly cpu: string;
    readonly memory: string;
}
export interface WorkspaceServiceProfile {
    readonly name: string;
    readonly port: number;
    readonly targetPort: number;
}
export interface WorkspaceSecretProjection {
    readonly secretName: string;
    readonly mountPath: string;
    readonly purpose: string;
}
export interface WorkspaceEgressPeerProfile {
    readonly namespaceLabels: Readonly<Record<string, string>>;
    readonly podLabels: Readonly<Record<string, string>>;
    readonly ports: readonly number[];
}
export interface WorkspaceExecutionProfile {
    readonly key: string;
    readonly namespace: string;
    readonly image: string;
    readonly runtimeClassName?: string;
    readonly command?: readonly string[];
    readonly persistent: boolean;
    readonly storageSize: string;
    readonly requests: ResourceQuantity;
    readonly limits: ResourceQuantity;
    readonly allowedEgressCidrs: readonly string[];
    readonly allowedEgressPeers?: readonly WorkspaceEgressPeerProfile[];
    readonly imagePullSecrets?: readonly string[];
    readonly requireImageDigest?: boolean;
    readonly allowDns: boolean;
    readonly service?: WorkspaceServiceProfile;
    readonly secretProjections: readonly WorkspaceSecretProjection[];
    readonly provenance: Readonly<Record<string, string>>;
}
export declare class WorkspaceProfileRegistry {
    private readonly profiles;
    constructor(profiles: readonly WorkspaceExecutionProfile[]);
    get(profileKey: string): WorkspaceExecutionProfile;
    list(): readonly WorkspaceExecutionProfile[];
}
export interface ProjectEnvironmentSnapshot {
    readonly files: Readonly<Record<string, string>>;
}
export interface ExecutionProfileResolution {
    readonly profile: WorkspaceExecutionProfile;
    readonly source: "devcontainer" | "docker-compose" | "dockerfile" | "mise-devbox" | "language-manifest" | "awp-profile";
    readonly sourcePath?: string;
    readonly requiresImageBuild: boolean;
}
/** Resolves project-native declarations in the precedence fixed by the workspace spec. */
export declare function resolveExecutionProfile(snapshot: ProjectEnvironmentSnapshot, fallback: WorkspaceExecutionProfile): ExecutionProfileResolution;
//# sourceMappingURL=profile.d.ts.map