import { type RegisteredChannel, type QueuedMessage, type ThinkingLevel } from './types.js'; export type ScheduledTaskType = 'once' | 'recurring'; export interface ScheduledTaskRow { id: number; name: string; type: ScheduledTaskType; schedule: string; channel_jid: string; prompt: string; enabled: number; last_run_at: string | null; next_run_at: string | null; created_at: string; created_by: string; } export declare function initDb(): void; export declare function registerChannel(ch: RegisteredChannel): void; export declare function unregisterChannel(jid: string): boolean; export declare function getChannel(jid: string): RegisteredChannel | undefined; export declare function getAllChannels(): RegisteredChannel[]; export declare function createDmChannel(jid: string, userId: string, displayName: string): RegisteredChannel; export declare function setChannelModelOverride(jid: string, modelOverride: string): boolean; export declare function clearChannelModelOverride(jid: string): boolean; export declare function setChannelThinkingOverride(jid: string, thinkingOverride: ThinkingLevel): boolean; export declare function clearChannelThinkingOverride(jid: string): boolean; export declare function enqueueMessage(msg: { channelJid: string; sender: string; senderName: string; content: string; timestamp: string; attachments?: string | null; }): void; export declare function claimNextMessage(channelJid: string): QueuedMessage | undefined; export declare function markMessageDone(rowid: number): void; export declare function markMessageFailed(rowid: number): void; export declare function clearPendingMessages(channelJid: string): number; export declare function recoverStuckMessages(): number; /** Get channels that have pending messages */ export declare function channelsWithPending(): string[]; export declare function addScheduledTask(task: { name: string; type: ScheduledTaskType; schedule: string; channelJid: string; prompt: string; createdBy?: string; nextRunAt: string; }): number; export declare function removeScheduledTask(id: number): boolean; export declare function enableScheduledTask(id: number): boolean; export declare function disableScheduledTask(id: number): boolean; export declare function listScheduledTasks(): ScheduledTaskRow[]; export declare function getDueScheduledTasks(): ScheduledTaskRow[]; export declare function updateTaskAfterRun(id: number, lastRunAt: string, nextRunAt: string | null): void; export declare function enqueueScheduledTask(taskId: number, msg: { channelJid: string; sender: string; senderName: string; content: string; timestamp: string; }, lastRunAt: string, nextRunAt: string | null): void; export declare function logMessage(channelJid: string, role: string, content: string): void; export declare function closeDb(): void;