/**
 * Config key registry access (Phase 77 / REF-008).
 * Validation logic stays in `../../config-metadata.ts`; this module holds the JSON-backed registry + lookups.
 */
export type ConfigKeyExposure = "public" | "maintainer" | "internal";
export type ConfigValueType = "string" | "boolean" | "number" | "object" | "array";
export type ConfigKeyMetadata = {
    key: string;
    type: ConfigValueType;
    description: string;
    default: unknown;
    /** If set, value must equal one of these (after type coercion). */
    allowedValues?: unknown[];
    domainScope: "project" | "user" | "runtime" | "internal";
    owningModule: string;
    sensitive: boolean;
    requiresRestart: boolean;
    requiresApproval: boolean;
    exposure: ConfigKeyExposure;
    /** Persisted layers that may store this key */
    writableLayers: ("project" | "user")[];
};
/** Canonical in-memory registry (read-only surface for validators). */
export declare const configMetadataRegistry: Record<string, ConfigKeyMetadata>;
export declare function getConfigKeyMetadata(key: string): ConfigKeyMetadata | undefined;
export declare function listConfigMetadata(options?: {
    exposure?: "public" | "maintainer" | "internal" | "all";
}): ConfigKeyMetadata[];
export declare function assertWritableKey(key: string): ConfigKeyMetadata;
