import { AnsiLogger } from 'matterbridge/logger';
import type { UserData } from '../../roborockCommunication/models/index.js';
import type { AuthContext } from './AuthContext.js';
import { PasswordAuthStrategy } from './PasswordAuthStrategy.js';
import { TwoFactorAuthStrategy } from './TwoFactorAuthStrategy.js';
/** Coordinates authentication strategies based on the selected method. */
export declare class AuthenticationCoordinator {
    private readonly logger;
    private readonly strategies;
    constructor(passwordStrategy: PasswordAuthStrategy, twoFactorStrategy: TwoFactorAuthStrategy, logger: AnsiLogger);
    /**
     * Authenticate user using the specified method.
     * @param method Authentication method ('Password' or 'VerificationCode')
     * @param context Authentication context containing credentials
     * @returns UserData if successful, undefined if further action required
     */
    authenticate(method: string, context: AuthContext): Promise<UserData | undefined>;
}
//# sourceMappingURL=AuthenticationCoordinator.d.ts.map