import React from "react";
export interface BaseTemplateState {
    title?: string;
    scopeData?: {
        station?: string;
        tiers?: string[];
    };
    description?: string;
    whenToApplyConditions?: any[];
    whenNotToApplyConditions?: any[];
    configData?: any;
    citations?: any[];
    fieldCitations?: Record<string, any[]>;
    citation?: Record<string, any>;
}
export interface BaseTemplateHandlers {
    onTitleChange: (value: string) => void;
    onScopeChange: (field: string, value: any) => void;
    onDescriptionChange: (value: string) => void;
    onAddWhenToApply: () => void;
    onRemoveWhenToApply: (id: number | string) => void;
    onEditWhenToApply: (id: number | string, text: string) => void;
    onAddWhenNotToApply: () => void;
    onRemoveWhenNotToApply: (id: number | string) => void;
    onEditWhenNotToApply: (id: number | string, text: string) => void;
    onConfigChange?: (key: string, value: any) => void;
}
export interface BaseTemplateUiState {
    showScope?: boolean;
    showConfiguration?: boolean;
    titleLabel?: string;
    scopeLabel?: string;
    tierLabel?: string;
    descriptionLabel?: string;
    whenToApplyLabel?: string;
    whenNotToApplyLabel?: string;
    stationLabel?: string;
    configLabel?: string;
    stationOptions?: {
        label: string;
        value: string;
    }[];
    tierOptions?: string[];
    separationItems?: any[];
    toggles?: any[];
    isAiStreaming?: boolean;
    isReadOnly?: boolean;
    activeEditId?: string | null;
    setActiveEditId?: (id: string | null) => void;
    pendingEditId?: string | null;
    setPendingEditId?: (id: string | null) => void;
    validationErrors?: Record<string, string>;
    highlights?: Map<string, any>;
    highlightedIds?: string[];
    conflictReason?: string;
    setSendMessageInChat?: (message: string) => void;
}
export interface BaseTemplateProps {
    state: BaseTemplateState;
    handlers: BaseTemplateHandlers;
    uiState: BaseTemplateUiState;
    customNodes?: {
        top?: React.ReactNode;
        afterTitle?: React.ReactNode;
        afterScope?: React.ReactNode;
        afterDescription?: React.ReactNode;
        afterWhenToApply?: React.ReactNode;
        afterWhenNotToApply?: React.ReactNode;
        bottom?: React.ReactNode;
    };
}
export declare const BaseTemplate: React.FC<BaseTemplateProps>;
//# sourceMappingURL=BaseTemplate.d.ts.map