import { AnsiLogger } from 'matterbridge/logger';
import { PlatformConfigManager } from '../../platform/platformConfigManager.js';
import type { UserData } from '../../roborockCommunication/models/index.js';
import { AuthenticationService } from '../authenticationService.js';
import { UserDataRepository } from './UserDataRepository.js';
/** Base class for authentication strategies with shared caching logic. */
export declare abstract class BaseAuthStrategy {
    protected readonly authService: AuthenticationService;
    protected readonly userDataRepository: UserDataRepository;
    protected readonly configManager: PlatformConfigManager;
    protected readonly logger: AnsiLogger;
    constructor(authService: AuthenticationService, userDataRepository: UserDataRepository, configManager: PlatformConfigManager, logger: AnsiLogger);
    /** Format error message from unknown error type. */
    protected formatError(error: unknown): string;
    /** Try to authenticate with cached token if available and not bypassed. */
    protected tryAuthenticateWithCachedToken(username: string): Promise<UserData | undefined>;
}
//# sourceMappingURL=BaseAuthStrategy.d.ts.map