export interface RecipientItem {
    id: string;
    name: string;
    [key: string]: unknown;
}
export interface RecipientCategory {
    key: string;
    label: string;
    availableItems: RecipientItem[];
    selectedIds: string[];
    allSelected: boolean;
    parentKey?: string;
    dependsOn?: string[];
}
interface AlertFormData {
    title: string;
    message: string;
    image: File | string | null;
    date: string;
    time: string;
    sendToday: boolean;
    sendCopyToEmail: boolean;
    recipientCategories: Record<string, RecipientCategory>;
}
interface AlertFormStore extends AlertFormData {
    setTitle: (title: string) => void;
    setMessage: (message: string) => void;
    setImage: (image: File | string | null) => void;
    setDate: (date: string) => void;
    setTime: (time: string) => void;
    setSendToday: (sendToday: boolean) => void;
    setSendCopyToEmail: (sendCopyToEmail: boolean) => void;
    initializeCategory: (category: RecipientCategory) => void;
    updateCategoryItems: (key: string, items: RecipientItem[]) => void;
    updateCategorySelection: (key: string, selectedIds: string[], allSelected: boolean) => void;
    clearCategorySelection: (key: string) => void;
    resetForm: () => void;
}
export declare const useAlertFormStore: import("zustand").UseBoundStore<import("zustand").StoreApi<AlertFormStore>>;
export {};
//# sourceMappingURL=useAlertForm.d.ts.map