import { AuthenticationSource, AuthenticationSourceType, AuthenticationSourceDetector } from '../types/auth-source.types';
import { SessionStateManager } from './session-state';
import { AccountConfigManager } from './account-config';
export declare class CommandLineAccountDetector implements AuthenticationSourceDetector {
    readonly type: AuthenticationSourceType;
    readonly priority: number;
    private accountManager;
    constructor(accountManager?: AccountConfigManager);
    detect(options?: Record<string, unknown>): AuthenticationSource | null;
    isAvailable(options?: Record<string, unknown>): boolean;
}
export declare class CommandLineAuthDetector implements AuthenticationSourceDetector {
    readonly type: AuthenticationSourceType;
    readonly priority: number;
    detect(options?: Record<string, unknown>): AuthenticationSource | null;
    isAvailable(options?: Record<string, unknown>): boolean;
}
export declare class SessionAuthDetector implements AuthenticationSourceDetector {
    readonly type: AuthenticationSourceType;
    readonly priority: number;
    private sessionManager;
    private accountManager;
    constructor(sessionManager?: SessionStateManager, accountManager?: AccountConfigManager);
    detect(_options?: Record<string, unknown>): AuthenticationSource | null;
    isAvailable(options?: Record<string, unknown>): boolean;
}
export declare class DefaultAccountAuthDetector implements AuthenticationSourceDetector {
    readonly type: AuthenticationSourceType;
    readonly priority: number;
    private accountManager;
    constructor(accountManager?: AccountConfigManager);
    detect(_options?: Record<string, unknown>): AuthenticationSource | null;
    isAvailable(options?: Record<string, unknown>): boolean;
}
export declare class EnvironmentAuthDetector implements AuthenticationSourceDetector {
    readonly type: AuthenticationSourceType;
    readonly priority: number;
    detect(_options?: Record<string, unknown>): AuthenticationSource | null;
    isAvailable(options?: Record<string, unknown>): boolean;
}
export declare class ConfigAuthDetector implements AuthenticationSourceDetector {
    readonly type: AuthenticationSourceType;
    readonly priority: number;
    detect(_options?: Record<string, unknown>): AuthenticationSource | null;
    isAvailable(options?: Record<string, unknown>): boolean;
}
export declare class AuthenticationSourceManager {
    private detectors;
    constructor(sessionManager?: SessionStateManager, accountManager?: AccountConfigManager);
    getAvailableSources(options?: Record<string, unknown>): AuthenticationSource[];
    getAuthenticationSource(options?: Record<string, unknown>): AuthenticationSource | null;
    isCompleteAuthentication(source: AuthenticationSource): boolean;
    getCredentials(options?: Record<string, unknown>): {
        appId: string;
        appSecret: string;
        userId?: string;
    } | null;
    getDiagnostics(options?: Record<string, unknown>): {
        availableSources: AuthenticationSource[];
        selectedSource?: AuthenticationSource;
        errors: string[];
        warnings: string[];
        suggestions: string[];
    };
    getStatusMessage(options?: Record<string, unknown>): string;
    getSourceByType(type: AuthenticationSourceType, options?: Record<string, unknown>): AuthenticationSource | null;
    isSourceAvailable(type: AuthenticationSourceType, options?: Record<string, unknown>): boolean;
}
//# sourceMappingURL=auth-source-manager.d.ts.map