import type { Logger } from '#services/logger/logger.types';
import type { AccessTokenRecord, DatabaseManager, IdTokenClaims, IdTokenRecord, PlatformAttributes, PlatformFilter, PlatformRecord } from '#services/database-manager/database-manager.types';
import type { MongoConnectionConfig } from '#services/database-manager/mongo/mongo-database-manager.types';
export declare class MongoDatabaseManager implements DatabaseManager {
    private readonly LOG_COMPONENT;
    private readonly CONNECTED_EVENT;
    private readonly OPEN_EVENT;
    private readonly ERROR_EVENT;
    private readonly RECONNECTED_EVENT;
    private readonly DISCONNECTED_EVENT;
    private readonly url;
    private readonly connectionOptions;
    private readonly logger;
    private deployed;
    constructor(logger: Logger, config: MongoConnectionConfig);
    listen(): Promise<void>;
    close(): Promise<void>;
    getPlatformByUrlAndClientId(url: string, clientId: string): Promise<PlatformRecord | undefined>;
    getPlatforms(filter?: PlatformFilter): Promise<PlatformRecord[]>;
    getPlatformById(id: string): Promise<PlatformRecord | undefined>;
    savePlatform(platform: PlatformAttributes): Promise<string>;
    updatePlatformById(id: string, fields: Partial<PlatformAttributes>): Promise<void>;
    deletePlatformById(id: string): Promise<void>;
    getAccessToken(platformUrl: string, clientId: string, scopes: string): Promise<AccessTokenRecord | undefined>;
    saveAccessToken(platformUrl: string, clientId: string, scopes: string, token: AccessTokenRecord): Promise<string>;
    getIdToken(id: string): Promise<IdTokenRecord | undefined>;
    saveIdToken(token: IdTokenClaims): Promise<string>;
    consumeNonce(nonce: string): Promise<boolean>;
    saveNonce(nonce: string): Promise<string>;
    private ensureDeployed;
    private buildPlatformQuery;
    private toPlatformRecord;
}
export default MongoDatabaseManager;
