import type { ControlPlaneStore, JsonValue } from '../control-plane';
import type { ConfigurationDependency, ConfigurationEntry, ConfigurationScope } from './model';
export declare class ConfigurationStore {
    readonly controlPlane: ControlPlaneStore;
    private readonly now;
    constructor(controlPlane: ControlPlaneStore, now?: () => Date);
    get(id: string): ConfigurationEntry | undefined;
    find(projectId: string, scope: ConfigurationScope, key: string): ConfigurationEntry | undefined;
    list(input: {
        projectId: string;
        scope?: ConfigurationScope;
        kind?: ConfigurationEntry['kind'];
    }): ConfigurationEntry[];
    create(input: Omit<ConfigurationEntry, 'id' | 'version' | 'createdAt' | 'updatedAt'>): ConfigurationEntry;
    update(id: string, expectedVersion: number, patch: Pick<ConfigurationEntry, 'value' | 'valueFingerprint' | 'secretRef' | 'backend' | 'backendVersion' | 'required' | 'metadata' | 'rotatedAt'>): ConfigurationEntry;
    remove(id: string, expectedVersion: number): ConfigurationEntry;
    setDependency(input: Omit<ConfigurationDependency, 'createdAt' | 'updatedAt'>): ConfigurationDependency;
    dependencies(entryId: string): ConfigurationDependency[];
    dependenciesForResource(resourceId: string): ConfigurationDependency[];
    mutation(idempotencyKey: string): {
        requestHash: string;
        result: Record<string, JsonValue>;
    } | undefined;
    recordMutation(input: {
        projectId: string;
        idempotencyKey: string;
        requestHash: string;
        result: Record<string, JsonValue>;
        actorId?: string;
    }): void;
    private validateEntry;
    private validateScope;
}
