import type { MtlsOptions } from '../../http-agent';
import type { AsyncCacheInterface } from '../async-cache';
import type { DestinationCacheType } from './destination-cache';
/**
 * @internal
 */
type MtlsCacheInterface = AsyncCacheInterface<MtlsOptions>;
interface RegisterDestinationCacheType {
    destination: DestinationCacheType;
    mtls: MtlsCacheType;
}
interface MtlsCacheType {
    /**
     * @internal
     */
    useMtlsCache: boolean;
    /**
     * @internal
     */
    retrieveMtlsOptionsFromCache: () => Promise<MtlsOptions | undefined>;
    /**
     * @internal
     */
    cacheMtlsOptions: () => Promise<void>;
    /**
     * @internal
     */
    getMtlsOptions: () => Promise<MtlsOptions | Record<string, never>>;
    /**
     * @internal
     */
    clear: () => Promise<void>;
    /**
     * @internal
     */
    getCacheInstance: () => MtlsCacheInterface;
}
/**
 * @internal
 */
export declare const RegisterDestinationCache: () => RegisterDestinationCacheType;
/**
 * @internal
 */
export declare const registerDestinationCache: RegisterDestinationCacheType;
export {};
