export type AuthenticationSourceType = 'command-line-account' | 'command-line' | 'session' | 'default-account' | 'environment' | 'config';
export interface AuthenticationSource {
    type: AuthenticationSourceType;
    priority: number;
    appId?: string | undefined;
    appSecret?: string | undefined;
    userId?: string | undefined;
    baseUrl?: string | undefined;
    environment?: string | undefined;
    metadata: {
        source: string;
        accountName?: string | undefined;
        setAt?: Date | undefined;
        context?: Record<string, any> | undefined;
    };
}
export interface AuthenticationContext {
    source: AuthenticationSource;
    credentials: {
        appId: string;
        appSecret: string;
        userId?: string;
        baseUrl?: string;
        environment?: string;
    };
    diagnostics: {
        attemptedSources: string[];
        selectedReason: string;
        warnings: string[];
        isComplete: boolean;
    };
}
export interface AuthenticationProvider {
    getAuthenticationContext(options?: Record<string, unknown>): AuthenticationContext | null;
    getCredentials(options?: Record<string, unknown>): {
        appId: string;
        appSecret: string;
        userId?: string;
    } | null;
    getCurrentSource(options?: Record<string, unknown>): AuthenticationSource | null;
    validateAuthentication(source: AuthenticationSource): boolean;
    getStatusMessage(options?: Record<string, unknown>): string;
    getDiagnostics(options?: Record<string, unknown>): {
        availableSources: AuthenticationSource[];
        selectedSource?: AuthenticationSource;
        errors: string[];
        warnings: string[];
        suggestions: string[];
    };
}
export interface AuthenticationSourceDetector {
    readonly type: AuthenticationSourceType;
    readonly priority: number;
    detect(options?: Record<string, unknown>): AuthenticationSource | null;
    isAvailable(options?: Record<string, unknown>): boolean;
}
export declare const AUTH_PRIORITY: {
    readonly COMMAND_LINE_ACCOUNT: 1;
    readonly COMMAND_LINE: 2;
    readonly SESSION: 3;
    readonly ENVIRONMENT: 4;
    readonly DEFAULT_ACCOUNT: 5;
    readonly CONFIG: 6;
};
export declare const SOURCE_PRIORITY_MAP: Record<AuthenticationSourceType, number>;
export declare const SOURCE_DESCRIPTIONS: Record<AuthenticationSourceType, string>;
//# sourceMappingURL=auth-source.types.d.ts.map