export type PromiseStatus = 'pending' | 'fulfilled' | 'failed' | 'expired' | 'cancelled';
export interface AgentPromise {
    promise_id: string;
    /** Natural-language commitment extracted from assistant output. */
    commitment: string;
    /** Optional service this promise belongs to. */
    service_id?: string;
    /** Optional automation job backing this promise. */
    schedule_id?: string;
    /** Capability required to fulfil (e.g. scheduler, email, browser). */
    capability_required?: string;
    status: PromiseStatus;
    /** ISO timestamp when next action is expected. */
    next_due_at?: string;
    /** ISO timestamp of last fulfilment. */
    last_fulfilled_at?: string;
    failure_count: number;
    /** Fallback message if fulfilment cannot occur. */
    fallback_message?: string;
    /** Session that created the promise. */
    session_id?: string;
    created_at: string;
    updated_at: string;
}
export interface PromiseBreachEvent {
    promise_id: string;
    breach_type: 'overdue' | 'capability_missing' | 'repeated_failure';
    detail: string;
    timestamp: string;
}
export interface ObligationCheckResult {
    total: number;
    pending: number;
    fulfilled: number;
    failed: number;
    expired: number;
    breaches: PromiseBreachEvent[];
}
/** Detect commitment language in assistant text. Returns matched phrases. */
export declare function detectCommitments(text: string): string[];
export declare function createPromise(projectDir: string, commitment: string, options?: Partial<Pick<AgentPromise, 'service_id' | 'schedule_id' | 'capability_required' | 'next_due_at' | 'fallback_message' | 'session_id'>>): Promise<AgentPromise>;
export declare function listPromises(projectDir: string, filter?: {
    status?: PromiseStatus;
    service_id?: string;
}): Promise<AgentPromise[]>;
export declare function updatePromise(projectDir: string, promise_id: string, updates: Partial<Pick<AgentPromise, 'status' | 'last_fulfilled_at' | 'failure_count' | 'next_due_at' | 'fallback_message' | 'schedule_id'>>): Promise<AgentPromise | null>;
export declare function checkObligations(projectDir: string, availableCapabilities?: Set<string>): Promise<ObligationCheckResult>;
/** Fulfilment shortcut: mark a promise as fulfilled now. */
export declare function fulfilPromise(projectDir: string, promise_id: string): Promise<AgentPromise | null>;
/** Failure shortcut: increment failure count, optionally mark as failed. */
export declare function failPromise(projectDir: string, promise_id: string, markFailed?: boolean): Promise<AgentPromise | null>;
//# sourceMappingURL=promiseLedger.d.ts.map