import type { Database } from "bun:sqlite";
export declare const TODOS_LOCAL_SNAPSHOT_SCHEMA_VERSION = 1;
export type LocalSnapshotType = "projects" | "tasks" | "plans" | "runs" | "dependencies" | "events" | "evidence";
export interface LocalSnapshotCatalogEntry {
    type: LocalSnapshotType;
    uri: string;
    title: string;
    description: string;
    json_contract: "local_snapshot";
}
export interface LocalSnapshotOptions {
    type: LocalSnapshotType;
    project_id?: string;
    generatedAt?: string;
    limit?: number;
    since?: string;
}
export interface LocalSnapshot {
    schema_version: typeof TODOS_LOCAL_SNAPSHOT_SCHEMA_VERSION;
    kind: "hasna.todos.local-snapshot";
    type: LocalSnapshotType;
    local_only: true;
    no_network: true;
    redacted: true;
    generated_at: string;
    package: {
        packageName: "@hasna/todos";
        repository: "hasna/todos";
        version: string;
    };
    filters: {
        project_id: string | null;
        since: string | null;
        limit: number;
    };
    cursor: string;
    fingerprint: string;
    count: number;
    items: unknown[];
    resources: {
        self: string;
        poll_tool: "poll_local_snapshots";
        markdown_tool: "get_local_snapshot";
    };
}
export interface LocalSnapshotPollResult {
    schema_version: 1;
    local_only: true;
    no_network: true;
    generated_at: string;
    since: string | null;
    cursor: string;
    changed: boolean;
    snapshots: LocalSnapshot[];
}
export declare function listLocalSnapshotResources(): LocalSnapshotCatalogEntry[];
export declare function getLocalSnapshot(options: LocalSnapshotOptions, db?: Database): LocalSnapshot;
export declare function pollLocalSnapshots(options?: {
    types?: LocalSnapshotType[];
    project_id?: string;
    since?: string;
    generatedAt?: string;
    limit?: number;
}, db?: Database): LocalSnapshotPollResult;
export declare function renderLocalSnapshotMarkdown(snapshot: LocalSnapshot): string;
//# sourceMappingURL=local-snapshots.d.ts.map