import type { AttributionContentOptions } from 'zephyr-edge-contract';
export interface AttributionConfig {
    schemaVersion: 1;
    enabled: boolean;
    /** Missing storage means local, including configurations written by older SDKs. */
    storage?: 'local' | 'remote';
    repositoryId?: string;
    content?: AttributionContentOptions;
    gitAiPath?: string;
    exclude?: string[];
}
export declare function validateAttributionConfig(value: unknown): asserts value is AttributionConfig;
/** Private overrides can restrict sharing, never enable remote storage or more content. */
export declare function readAttributionConfig(root: string, gitDir?: string): AttributionConfig | undefined;
/** Atomic configuration writes. Neither shared nor private files accept secrets. */
export declare function writeAttributionConfig(root: string, gitDir: string, config: AttributionConfig, privateOverride?: boolean): void;
//# sourceMappingURL=config.d.ts.map