import React from "react";
interface Condition {
    id: string;
    text: string;
}
interface Occurrence {
    id: string;
    title: string;
    description: string;
}
export interface CategoryFormData {
    name: string;
    description: string;
    whenToApply: Condition[];
    whenNotToApply: Condition[];
    occurrences: Occurrence[];
}
/**
 * Flexible shape for the existing category shown in the comparison overlay.
 * The parent populates whatever fields the agent returns — all are optional
 * so you can adjust to match your actual API response without touching this file.
 */
export interface ExistingCategoryData {
    name?: string;
    description?: string;
    /** Raw string or array of strings — both are handled */
    whenToApply?: string | string[];
    /** Raw string or array of strings — both are handled */
    whenNotToApply?: string | string[];
    /** Any extra fields the agent returns — stored but not displayed by default */
    [key: string]: any;
}
export interface CreateCategoryState {
    formData: CategoryFormData;
    nameLabel?: string;
    namePlaceholder?: string;
}
export interface CreateCategoryHandlers {
    setFormData: React.Dispatch<React.SetStateAction<CategoryFormData>>;
    onAiResponseChange?: (data: CategoryFormData) => void;
}
export interface CreateCategoryUiState {
    readOnly?: boolean;
    isAiStreaming?: boolean;
    activeEditId?: string | null;
    setActiveEditId?: (id: string | null) => void;
    pendingEditId?: string | null;
    setPendingEditId?: (id: string | null) => void;
    setSendMessageInChat?: (msg: string) => void;
    validationErrors?: Record<string, string>;
    addExampleBtnRef?: React.RefObject<HTMLButtonElement>;
    /**
     * When non-null the comparison overlay is shown on top of the form.
     * Set this from the parent (agent handler) to trigger the overlay,
     * set to null to hide it.
     */
    comparisonData?: ExistingCategoryData | null;
    /**
     * Called when the user clicks "Back" in the overlay.
     * The parent should set comparisonData back to null here.
     */
    onComparisonClose?: () => void;
}
interface CreateCategoryProps {
    state: CreateCategoryState;
    handlers: CreateCategoryHandlers;
    uiState: CreateCategoryUiState;
}
export declare const CreateCategory: React.FC<CreateCategoryProps>;
export default CreateCategory;
//# sourceMappingURL=CreateCategory.d.ts.map