/**
 * Obligation Operations for DatabaseService
 *
 * Provides CRUD and query operations for the obligations table.
 * Obligations track contract deadlines, deliverables, and compliance items.
 *
 * @module database/obligation-operations
 */
import type Database from 'better-sqlite3';
export interface Obligation {
    id: string;
    document_id: string;
    extraction_id: string | null;
    obligation_type: string;
    description: string;
    responsible_party: string | null;
    due_date: string | null;
    recurring: string | null;
    status: string;
    source_chunk_id: string | null;
    source_page: number | null;
    confidence: number;
    created_at: string;
    metadata_json: string;
}
export declare const OBLIGATION_TYPES: readonly ["payment", "delivery", "notification", "renewal", "termination", "compliance", "reporting", "approval", "other"];
export declare const OBLIGATION_STATUSES: readonly ["active", "fulfilled", "overdue", "waived", "expired"];
export type ObligationType = (typeof OBLIGATION_TYPES)[number];
export type ObligationStatus = (typeof OBLIGATION_STATUSES)[number];
export interface CreateObligationParams {
    document_id: string;
    extraction_id?: string | null;
    obligation_type: ObligationType;
    description: string;
    responsible_party?: string | null;
    due_date?: string | null;
    recurring?: string | null;
    status?: ObligationStatus;
    source_chunk_id?: string | null;
    source_page?: number | null;
    confidence?: number;
    metadata_json?: string;
}
export interface ListObligationsFilters {
    document_id?: string;
    obligation_type?: ObligationType;
    status?: ObligationStatus;
    due_before?: string;
    due_after?: string;
    responsible_party?: string;
    limit?: number;
    offset?: number;
}
export interface CalendarOptions {
    months_ahead?: number;
    status?: ObligationStatus;
    document_id?: string;
}
export interface CalendarMonth {
    month: string;
    obligations: Obligation[];
}
/**
 * Create a new obligation
 */
export declare function createObligation(db: Database.Database, params: CreateObligationParams): Obligation;
/**
 * List obligations with optional filters
 */
export declare function listObligations(db: Database.Database, filters: ListObligationsFilters): {
    obligations: Obligation[];
    total: number;
};
/**
 * Update obligation status
 * @throws Error if obligation not found
 */
export declare function updateObligationStatus(db: Database.Database, id: string, status: ObligationStatus, reason?: string): Obligation;
/**
 * Get obligations grouped by month for calendar view
 */
export declare function getObligationCalendar(db: Database.Database, options: CalendarOptions): CalendarMonth[];
/**
 * Mark active obligations with past due dates as overdue
 * @returns Number of obligations marked overdue
 */
export declare function markOverdueObligations(db: Database.Database): number;
//# sourceMappingURL=obligation-operations.d.ts.map