/**
 * Registry of local-usage readers, one per CLI.
 *
 * Mirrors `providerRegistry.ts`: descriptors are static and always available,
 * while the reader itself arrives through a dynamic import inside its factory.
 * Same reason as the provider registry — a static import graph across a dozen
 * readers is how circular dependencies start, and it would also force every
 * reader's cost of loading onto a caller who only wanted one of them.
 */
import type { LocalUsageCliId, LocalUsageReader, LocalUsageReaderDescriptor, LocalUsageReaderRegistration } from "../types/index.js";
export declare function registerLocalUsageReader(registration: LocalUsageReaderRegistration): void;
export declare function getLocalUsageDescriptors(): LocalUsageReaderDescriptor[];
export declare function getRegisteredLocalUsageCliIds(): LocalUsageCliId[];
export declare function createLocalUsageReader(cliId: LocalUsageCliId): Promise<LocalUsageReader>;
