import type { JaitDB } from "../db/connection.js";
import { reminders } from "../db/schema.js";
export type ReminderStatus = "active" | "archived";
export type ReminderRow = typeof reminders.$inferSelect;
export interface CreateReminderParams {
    userId?: string | null;
    workspaceId?: string | null;
    sessionId?: string | null;
    content: string;
    sourceType?: string | null;
    sourceId?: string | null;
    sourceSurface?: string | null;
    status?: ReminderStatus;
    tags?: string[];
}
export interface UpdateReminderParams {
    content?: string;
    workspaceId?: string | null;
    sessionId?: string | null;
    status?: ReminderStatus;
    tags?: string[];
}
export interface ListReminderOptions {
    userId?: string;
    status?: ReminderStatus | "all";
    workspaceId?: string;
    sessionId?: string;
    limit?: number;
}
export declare class ReminderService {
    private db;
    constructor(db: JaitDB);
    list(options?: ListReminderOptions): ReminderRow[];
    listByIds(ids: string[]): ReminderRow[];
    getById(id: string, userId?: string): ReminderRow | undefined;
    create(params: CreateReminderParams): ReminderRow;
    update(id: string, params: UpdateReminderParams, userId?: string): ReminderRow | undefined;
    delete(id: string, userId?: string): boolean;
    countByWorkspace(userId: string): Map<string, number>;
}
//# sourceMappingURL=reminders.d.ts.map