import type { ControlPlaneStore } from '../control-plane';
import type { ApplicationDraftInput, ApplicationDraftRecord } from './types';
export declare class ApplicationDraftStore {
    private readonly controlPlane;
    private readonly nowFn;
    private readonly idFn;
    constructor(controlPlane: ControlPlaneStore, options?: {
        now?: () => Date;
        id?: () => string;
    });
    private now;
    create(input: {
        organizationId: string;
        projectId: string;
        name: string;
        draft: ApplicationDraftInput;
        step?: ApplicationDraftRecord['step'];
        suppliedSecretNames?: string[];
        actorId?: string;
    }): ApplicationDraftRecord;
    get(id: string): ApplicationDraftRecord | undefined;
    list(projectId: string): ApplicationDraftRecord[];
    update(id: string, expectedVersion: number, input: {
        draft: ApplicationDraftInput;
        step: ApplicationDraftRecord['step'];
        suppliedSecretNames?: string[];
        actorId?: string;
    }): ApplicationDraftRecord;
    markApplied(id: string, expectedVersion: number, actorId?: string): ApplicationDraftRecord;
}
