export declare const TAILSCALE_SECURE_ACCESS_SYSTEM_TASK_KIND: "secureAccess.tailscale.v1";
export declare const TAILSCALE_SECURE_ACCESS_SYSTEM_TASK_STEP_IDS: readonly ["detect", "install", "login", "serve enable", "verify url"];
export type TailscaleSecureAccessSystemTaskStepId = (typeof TAILSCALE_SECURE_ACCESS_SYSTEM_TASK_STEP_IDS)[number];
export type TailscaleSecureAccessInstallPolicy = 'skip' | 'installIfMissing';
export type TailscaleSecureAccessLoginPolicy = 'skip' | 'interactive';
export type TailscaleSecureAccessMode = 'normalUser' | 'managedAdmin';
export type TailscaleSecureAccessTaskParams = Readonly<{
    upstreamUrl: string;
    servePath?: string;
    installPolicy?: TailscaleSecureAccessInstallPolicy;
    loginPolicy?: TailscaleSecureAccessLoginPolicy;
    mode?: TailscaleSecureAccessMode;
}>;
export type TailscaleSecureAccessTaskSpec = Readonly<{
    kind: typeof TAILSCALE_SECURE_ACCESS_SYSTEM_TASK_KIND;
    params: Readonly<{
        upstreamUrl: string;
        servePath: string;
        installPolicy: TailscaleSecureAccessInstallPolicy;
        loginPolicy: TailscaleSecureAccessLoginPolicy;
        mode: TailscaleSecureAccessMode;
    }>;
}>;
export type TailscaleSecureAccessTaskResult = Readonly<{
    tailscaleInstalled: boolean;
    tailscaleLoggedIn: boolean;
    serveEnabled: boolean;
    shareableHttpsUrl: string | null;
    requiresApproval: Readonly<{
        url: string;
    }> | null;
}>;
export declare function createTailscaleSecureAccessTaskSpec(params: TailscaleSecureAccessTaskParams): TailscaleSecureAccessTaskSpec;
//# sourceMappingURL=tailscaleSecureAccessTaskContract.d.ts.map