import type { RpcSessionBackend, RpcSessionRow, RpcSessionUpdateInput, RpcSpawnQueueItem } from "@clinebot/rpc";
export interface SqliteRpcSessionBackendOptions {
    sessionsDir?: string;
}
export declare class SqliteRpcSessionBackend implements RpcSessionBackend {
    private readonly store;
    constructor(options?: SqliteRpcSessionBackendOptions);
    init(): void;
    upsertSession(row: RpcSessionRow): void;
    getSession(sessionId: string): RpcSessionRow | undefined;
    listSessions(options: {
        limit: number;
        parentSessionId?: string;
        status?: string;
    }): RpcSessionRow[];
    updateSession(input: RpcSessionUpdateInput): {
        updated: boolean;
        statusLock: number;
    };
    deleteSession(sessionId: string): boolean;
    deleteSessionsByParent(parentSessionId: string): void;
    enqueueSpawnRequest(input: {
        rootSessionId: string;
        parentAgentId: string;
        task?: string;
        systemPrompt?: string;
    }): void;
    claimSpawnRequest(rootSessionId: string, parentAgentId: string): RpcSpawnQueueItem | undefined;
}
export declare function createSqliteRpcSessionBackend(options?: SqliteRpcSessionBackendOptions): RpcSessionBackend;
//# sourceMappingURL=sqlite-rpc-session-backend.d.ts.map