import type { CreateFormInput, FormRecord, FormRepository, FormVersionRecord, FormWithVersions, PublishVersionInput, SubmissionFilter, SubmissionInput, SubmissionPage, SubmissionRecord, UpdateFormInput } from "./domain.js";
export declare class PgFormRepository implements FormRepository {
    private readonly pool;
    constructor();
    listForms(): Promise<FormRecord[]>;
    getFormByCode(code: string): Promise<FormWithVersions | null>;
    getFormVersion(formId: string, semver: string): Promise<FormVersionRecord | null>;
    createForm(data: CreateFormInput): Promise<FormRecord>;
    updateForm(code: string, data: UpdateFormInput): Promise<FormWithVersions | null>;
    softDeleteForm(code: string): Promise<boolean>;
    publishVersion(formId: string, data: PublishVersionInput): Promise<FormVersionRecord>;
    saveSubmission(data: SubmissionInput): Promise<SubmissionRecord>;
    listSubmissions(formId: string, filter: SubmissionFilter): Promise<SubmissionPage>;
}
