export interface MacClientManifest {
    platform: 'mac';
    version: string;
    build: string;
    versionCode: string;
    filename: string;
    dmgFilename: string;
    downloadUrl: string;
}
export interface ClientStatus {
    platform: NodeJS.Platform | string;
    supported: boolean;
    status: 'unavailable' | 'missing' | 'installed' | 'update-available';
    installed: boolean;
    appPath?: string;
    version?: string;
    build?: string;
    latestVersion?: string;
    latestBuild?: string;
    updateAvailable?: boolean;
    reason?: string;
    nextAction?: string;
}
interface ClientStatusOptions {
    platform?: NodeJS.Platform | string;
    appPath?: string;
    fetchLatestManifest?: () => Promise<MacClientManifest | null>;
}
interface ClientActionOptions extends ClientStatusOptions {
    runCommand?: (command: string, args: string[]) => {
        status: number | null;
        stdout?: string;
        stderr?: string;
    };
}
export declare function showClientStatus(options?: ClientStatusOptions & {
    json?: boolean;
}): Promise<ClientStatus>;
export declare function getClientStatus(options?: ClientStatusOptions): Promise<ClientStatus>;
export declare function installClient(options?: ClientActionOptions): Promise<void>;
export declare function updateClient(options?: ClientActionOptions): Promise<void>;
export declare function launchClient(options?: ClientActionOptions): Promise<void>;
export declare function installMacDmg(manifest: MacClientManifest, appPath: string, runCommand: NonNullable<ClientActionOptions['runCommand']>): Promise<boolean>;
export {};
