import type { Destination } from './destination-service-types';
import type { DestinationFetchOptions } from './destination-accessor-types';
/**
 * Represents options to configure how a destination should be registered.
 */
export type RegisterDestinationOptions = Pick<DestinationFetchOptions, 'jwt' | 'isolationStrategy'> & {
    inferMtls?: boolean;
    useMtlsCache?: boolean;
};
/**
 * Registers a destination in a cache for later usage.
 *
 * If a destination with the same key is already in the cache, it is replaced.
 * The key is built using the `getDestinationCacheKey` method.
 * @param destination - A destination to add to the `destinations` cache.
 * @param options - Options how to cache the destination.
 */
export declare function registerDestination(destination: DestinationWithName, options?: RegisterDestinationOptions): Promise<void>;
/**
 * Represents a destination with a `name` property.
 */
export type DestinationWithName = Destination & {
    name: string;
};
/**
 * @internal
 * @param options - The options for searching the cache
 * @returns Destination - the destination from cache
 */
export declare function searchRegisteredDestination(options: DestinationFetchOptions): Promise<Destination | null>;
