import type { Database as DatabaseType } from 'better-sqlite3'; import type { NormalizedUserInputResponse, UserInputKind, UserInputOption, ValidatedUserInputRequest } from './manifest.js'; export interface JobInputRequestRow { id: number; job_id: number; topic_id: number; requested_by_agent: string; requested_by_message_id: number | null; requested_by_user_id: string; status: 'pending' | 'answered' | 'cancelled' | 'expired'; request_key: string; title: string; kind: UserInputKind; prompt: string; form_json: string; response_json: string | null; answered_by_user_id: string | null; answered_at: string | null; expires_at: string | null; created_at: string; updated_at: string; } export interface JobInputRequestPayload { requestId: number; jobId: number; topicId: number; agentName: string; requestedByUserId: string; requestedByHandle: string | null; requestedByMessageId: number | null; requestKey: string; status: 'pending' | 'answered' | 'cancelled' | 'expired'; title: string; kind: UserInputKind; prompt: string; required: boolean; options?: UserInputOption[]; allowComment: boolean; response?: NormalizedUserInputResponse; answeredByUserId: string | null; answeredByHandle: string | null; answeredAt: string | null; expiresAt: string | null; createdAt: string; updatedAt: string; } export declare function createJobInputRequest(db: DatabaseType, params: { jobId: number; topicId: number; requestedByAgent: string; requestedByMessageId: number | null; requestedByUserId: string; request: ValidatedUserInputRequest; }): JobInputRequestPayload; export declare function getJobInputRequestById(db: DatabaseType, requestId: number): JobInputRequestPayload | undefined; export declare function getPendingJobInputRequest(db: DatabaseType, jobId: number): JobInputRequestPayload | undefined; export declare function listPendingTopicInputRequests(db: DatabaseType, topicId: number): JobInputRequestPayload[]; export declare function listVisibleTopicInputRequests(db: DatabaseType, topicId: number): JobInputRequestPayload[]; export declare function answerJobInputRequest(db: DatabaseType, requestId: number, answeredByUserId: string, response: NormalizedUserInputResponse): boolean; export declare function cancelJobInputRequest(db: DatabaseType, requestId: number): boolean; export declare function expirePendingJobInputRequests(db: DatabaseType, nowIso?: string): Array<{ requestId: number; jobId: number; topicId: number; agentName: string; }>; //# sourceMappingURL=db.d.ts.map