import type Redis from "ioredis";
import type { RequestUser } from "../auth/auth.guard";
export declare class PersonalStateController {
    private readonly redis;
    constructor(redis: Redis);
    notificationPreferences(user: RequestUser, workspaceId: string): Promise<{
        preferences: {
            workspaceId: number;
            updatedAt: string | null;
            messages: "all" | "mentions" | "off";
            calls: boolean;
            tasks: boolean;
            calendar: boolean;
            sound: boolean;
            inAppFlash: boolean;
        };
    }>;
    updateNotificationPreferences(user: RequestUser, workspaceId: string, body: unknown): Promise<{
        preferences: {
            workspaceId: number;
            updatedAt: string | null;
            messages: "all" | "mentions" | "off";
            calls: boolean;
            tasks: boolean;
            calendar: boolean;
            sound: boolean;
            inAppFlash: boolean;
        };
    }>;
    savedItems(user: RequestUser, workspaceId: string): Promise<{
        items: {
            id: number;
            workspaceId: number;
            channelId: number;
            channelName: string | null;
            authorName: string;
            text: string;
            createdAt: string;
            savedAt: string;
        }[];
    }>;
    save(user: RequestUser, workspaceId: string, messageId: string): Promise<{
        saved: boolean;
    }>;
    unsave(user: RequestUser, workspaceId: string, messageId: string): Promise<{
        saved: boolean;
    }>;
    drafts(user: RequestUser, workspaceId: string): Promise<{
        drafts: {
            id: number;
            workspaceId: number;
            channelId: number;
            threadRootMessageId: number | null;
            text: string;
            blocks: {} | null;
            updatedAt: string;
        }[];
    }>;
    upsertDraft(user: RequestUser, workspaceId: string, body: unknown): Promise<{
        draft: {
            id: number;
            workspaceId: number;
            channelId: number;
            threadRootMessageId: number | null;
            text: string;
            blocks: {} | null;
            updatedAt: string;
        } | null;
    }>;
    deleteDraft(user: RequestUser, workspaceId: string, body: unknown): Promise<{
        deleted: boolean;
    }>;
}
//# sourceMappingURL=personal-state.controller.d.ts.map