import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js';
import { AuthContextProvider } from '../../auth/providers/auth-context.provider.js';
import type { AdminContext, IGetAdminContextsResult, IUpdateAdminContextParams } from '../types.js';
export declare class AdminContextProvider {
    private authContextProvider;
    private db;
    private authContext;
    private authContextInitialized;
    private cachedContext;
    private cachedContextInitializing;
    constructor(authContextProvider: AuthContextProvider, db: TenantAwareDBClient);
    normalizeContext(rawContext: IGetAdminContextsResult): AdminContext;
    getAdminContext(): Promise<AdminContext | null>;
    getVerifiedAdminContext(): Promise<AdminContext>;
    updateAdminContext(params: IUpdateAdminContextParams): Promise<AdminContext | null>;
    getAdminContextByOwnerId(ownerId: string): Promise<AdminContext | null>;
    clearCache(): void;
    /**
     * Lazy initialization of auth context on first use.
     * This ensures the async provider is called only when needed.
     */
    private ensureAuthContext;
}
