type WorkProductLedgerSource = "tool_result" | "cli" | "system" | "manual";
type WorkProductLedgerKind = "artifact" | "file" | "record" | "report" | "workspace";
type WorkProductLedgerAction = "created" | "updated" | "deleted" | "referenced" | "published";
interface WorkProductLedgerEntry {
    schemaVersion: 1;
    entryId: string;
    recordedAt: string;
    sessionKey: string;
    source: WorkProductLedgerSource;
    kind: WorkProductLedgerKind;
    action: WorkProductLedgerAction;
    scope: string;
    summary: string;
    artifactPath?: string;
    objectiveStateSnapshotRefs?: string[];
    entityRefs?: string[];
    tags?: string[];
    metadata?: Record<string, string>;
}
interface WorkProductLedgerStatus {
    enabled: boolean;
    rootDir: string;
    entriesDir: string;
    entries: {
        total: number;
        valid: number;
        invalid: number;
        byKind: Partial<Record<WorkProductLedgerKind, number>>;
        byAction: Partial<Record<WorkProductLedgerAction, number>>;
        latestEntryId?: string;
        latestRecordedAt?: string;
        latestSessionKey?: string;
    };
    latestEntry?: WorkProductLedgerEntry;
    invalidEntries: Array<{
        path: string;
        error: string;
    }>;
}
interface WorkProductLedgerSearchResult {
    entry: WorkProductLedgerEntry;
    score: number;
    matchedFields: string[];
}
declare function resolveWorkProductLedgerDir(memoryDir: string, overrideDir?: string): string;
declare function validateWorkProductLedgerEntry(raw: unknown): WorkProductLedgerEntry;
declare function recordWorkProductLedgerEntry(options: {
    memoryDir: string;
    workProductLedgerDir?: string;
    entry: WorkProductLedgerEntry;
}): Promise<string>;
declare function searchWorkProductLedgerEntries(options: {
    memoryDir: string;
    workProductLedgerDir?: string;
    query: string;
    maxResults: number;
    sessionKey?: string;
}): Promise<WorkProductLedgerSearchResult[]>;
declare function getWorkProductLedgerStatus(options: {
    memoryDir: string;
    workProductLedgerDir?: string;
    enabled: boolean;
}): Promise<WorkProductLedgerStatus>;

export { type WorkProductLedgerAction, type WorkProductLedgerEntry, type WorkProductLedgerKind, type WorkProductLedgerSearchResult, type WorkProductLedgerSource, type WorkProductLedgerStatus, getWorkProductLedgerStatus, recordWorkProductLedgerEntry, resolveWorkProductLedgerDir, searchWorkProductLedgerEntries, validateWorkProductLedgerEntry };
