import type { Database } from "bun:sqlite";
import type { CalendarEvent, CalendarEventKind, LocalCalendarItem } from "../types/index.js";
export interface CreateCalendarItemInput {
    kind?: CalendarEventKind;
    title: string;
    description?: string;
    starts_at: string;
    ends_at?: string;
    timezone?: string;
    project_id?: string;
    task_id?: string;
    plan_id?: string;
    run_id?: string;
    recurrence_rule?: string;
    metadata?: Record<string, unknown>;
}
export interface CalendarQuery {
    project_id?: string;
    task_id?: string;
    plan_id?: string;
    run_id?: string;
    kind?: CalendarEventKind;
    from?: string;
    to?: string;
    include_completed?: boolean;
    include_runs?: boolean;
    include_sla?: boolean;
    include_local?: boolean;
    limit?: number;
}
export interface IcsExportOptions extends CalendarQuery {
    calendar_name?: string;
    product_id?: string;
    redact?: boolean;
    generated_at?: string;
}
export interface IcsImportResult {
    imported: number;
    skipped: number;
    items: LocalCalendarItem[];
}
export declare function createCalendarItem(input: CreateCalendarItemInput, db?: Database): LocalCalendarItem;
export declare function getCalendarItem(id: string, db?: Database): LocalCalendarItem | null;
export declare function listCalendarItems(query?: CalendarQuery, db?: Database): LocalCalendarItem[];
export declare function listCalendarEvents(query?: CalendarQuery, db?: Database): CalendarEvent[];
export declare function exportCalendarIcs(options?: IcsExportOptions, db?: Database): {
    filename: string;
    content: string;
    events: CalendarEvent[];
};
export declare function importCalendarIcs(content: string, db?: Database): IcsImportResult;
//# sourceMappingURL=calendar.d.ts.map