import { Command } from 'commander';
export interface AuthConfig {
    apiUrl: string;
    token?: string;
    v3ServiceKey?: string;
    user?: {
        id?: string;
        email?: string;
        name?: string;
    };
}
export interface LoginResult extends AuthConfig {
    success: boolean;
}
export interface DoctorReport {
    nodeVersion: string;
    platform: NodeJS.Platform;
    arch: string;
    configFile: string;
    loggedIn: boolean;
    apiUrl: string;
}
interface LoginOptions {
    token?: string;
    email?: string;
    password?: string;
    device?: boolean;
}
export declare function loadAuthConfig(): AuthConfig;
export declare function saveAuthConfig(config: AuthConfig): void;
export declare function clearAuthConfig(): void;
export declare function getAuthToken(): string | undefined;
export declare function login(email?: string, password?: string): Promise<LoginResult>;
export declare function logout(): Promise<void>;
export declare function whoami(): Promise<AuthConfig['user'] | undefined>;
export declare function doctor(): Promise<DoctorReport>;
export declare function handleLogin(options?: LoginOptions): Promise<LoginResult | undefined>;
export declare function handleLogout(_options?: unknown): Promise<void>;
export declare function statusAction(): Promise<void>;
export declare function registerAuthCommands(program: Command): void;
export {};
