import type { Adapter } from './adapter.ts';
export { adapterStore, YOOT_BRAND };
export type { AdapterStore };
declare const YOOT_BRAND: unique symbol;
/**
 * Internal adapter store system.
 *
 * @remarks
 * This returns a singleton object used to register adapters and
 * quickly retrieve them based on URL hostname.
 *
 * @internal
 * @returns An object with methods to `register` and `get` adapters.
 */
declare const adapterStore: AdapterStore;
/**
 * Internal adapter store system.
 *
 * @remarks
 * This singleton object manages adapter registration, unique storage (using a Set),
 * and efficient retrieval via a hostname cache.
 * It includes methods for testing, `reset` and `size`.
 *
 * @internal
 * @returns An object with methods to `register`, `get`, `reset`, and get the `size` of the store.
 */
type AdapterStore = {
    /** Registers adapter(s). Duplicate instances are ignored due to internal Set. */
    register(...adapters: Adapter[]): void;
    /**
     * Retrieves an adapter for the given URL.
     *
     * @remarks
     * Checks hostname cache first, then iterates the unique set of registered adapters.
     */
    get(url: URL): Adapter | undefined;
    /**
     * Clears the internal cache and registered adapters.
     *
     * @remarks
     * This is useful for debugging and testing purposes.
     */
    reset(): void;
    /**
     * Returns the number of registered adapters.
     *
     * @remarks
     * This is useful for debugging and testing purposes.
     */
    size(): number;
};
