import type Redis from "ioredis";
import type { RequestUser } from "../auth/auth.guard";
export declare class IntegrationsController {
    private readonly redis;
    constructor(redis: Redis);
    list(user: RequestUser): Promise<{
        integrations: {
            configured: boolean;
            provider: "zoom" | "google_calendar" | "outlook_calendar" | "openai";
            connected: boolean;
            accountEmail?: string | null | undefined;
            accountLabel?: string | null | undefined;
            secretLast4?: string | null | undefined;
        }[];
    }>;
    saveOpenAi(user: RequestUser, body: unknown): Promise<{
        configured: boolean;
        provider: "zoom" | "google_calendar" | "outlook_calendar" | "openai";
        connected: boolean;
        accountEmail?: string | null | undefined;
        accountLabel?: string | null | undefined;
        secretLast4?: string | null | undefined;
    }>;
    disconnect(user: RequestUser, body: unknown): Promise<{
        disconnected: boolean;
    }>;
    rewrite(user: RequestUser, body: unknown): Promise<{
        text: string;
    }>;
    startOAuth(user: RequestUser, body: unknown): Promise<{
        url: string;
    }>;
    /** Browser redirect from the provider — no AuthGuard; state binds the user. */
    oauthCallback(providerParam: string, code: string | undefined, state: string | undefined, error: string | undefined, reply: {
        redirect: (url: string, code?: number) => unknown;
    }): Promise<unknown>;
    externalEvents(user: RequestUser, query: unknown): Promise<{
        events: {
            title: string;
            id: string;
            location: string | null;
            startsAt: string;
            endsAt: string;
            allDay: boolean;
            provider: "zoom" | "google_calendar" | "outlook_calendar";
            htmlLink: string | null;
        }[];
    }>;
    zoomMeeting(user: RequestUser, body: unknown): Promise<{
        joinUrl: string;
        meetingId: string | number;
        startUrl?: string;
    }>;
}
//# sourceMappingURL=integrations.controller.d.ts.map