export interface LegalDocumentRow {
    id: number;
    code: string;
    version: string;
    title: string;
    content_markdown: string;
    effective_at: string;
    requires_acceptance: boolean;
    requires_reacceptance: boolean;
    published_at: string;
    created_at: string;
}
export interface LegalAcceptanceRow {
    id: number;
    user_id: number;
    legal_document_id: number;
    accepted_at: string;
    source: string;
    locale: string;
    ip_address: string | null;
    user_agent: string;
    checkbox_text: string;
    created_at: string;
}
export declare function seedDefaultLegalDocuments(): Promise<void>;
export declare function listLegalDocuments(): Promise<LegalDocumentRow[]>;
export declare function getLatestLegalDocument(code: string): Promise<LegalDocumentRow | null>;
export declare function acceptLegalDocument(input: {
    userId: number;
    code: string;
    version?: string;
    source?: string;
    locale?: string;
    ipAddress?: string | null;
    userAgent?: string;
    checkboxText?: string;
}): Promise<LegalAcceptanceRow | null>;
export declare function acceptLegalDocumentsBundle(input: {
    userId: number;
    codes: string[];
    versionByCode?: Record<string, string | undefined>;
    source?: string;
    locale?: string;
    ipAddress?: string | null;
    userAgent?: string;
    checkboxTextByCode?: Record<string, string | undefined>;
}): Promise<LegalAcceptanceRow[]>;
export declare function getUserLegalAcceptances(userId: number): Promise<Array<LegalAcceptanceRow & {
    code: string;
    version: string;
    title: string;
}>>;
//# sourceMappingURL=legal.service.d.ts.map