import React, { ReactNode } from 'react';
import { OverrideHistoryResponse, RuleVariant } from '../types';
/**
 * Props for the VariantCard component.
 * Library-ready: fully controlled via props, no store access, no API calls.
 */
export interface VariantCardProps {
    /** The variant object to display */
    variant: RuleVariant;
    /** Index of the variant in the list (for display numbering) */
    variantIndex: number;
    /** Total number of variants in the rule (used to show 'Rule Behavior' when only 1) */
    totalVariants?: number;
    /** Parent rule ID */
    ruleId: string;
    /** Total number of pending-approval variants in the parent rule */
    pendingApprovalCount?: number;
    /** Selected rule set ID used for scoped RBAC checks */
    ruleSetId?: string;
    /** The rule title (used for confirmation modal) */
    ruleTitle?: string;
    /** Tier name (e.g., "Tier 1", "Tier 2") */
    tierName?: string;
    displayLabel: string;
    /** Callback when Edit button is clicked */
    onEdit?: (variant: RuleVariant, ruleId: string, tierName?: string, action?: 'edit' | 'resolve_gaps') => void;
    /** Callback when Delete button is clicked */
    onDelete?: (variantId: string, ruleId: string) => void;
    /**
     * Optional handler to fetch override history.
     * Returns OverrideHistoryResponse or null on error.
     */
    onFetchOverrideHistory?: (ruleId: string, variantId: string) => Promise<OverrideHistoryResponse | null>;
    /** Custom label for edit button. Defaults to "Edit" */
    editButtonLabel?: string;
    /** Custom label for delete button. Defaults to "Delete" */
    deleteButtonLabel?: string;
    /** Custom label for "When to Apply" section */
    whenToApplyLabel?: string;
    /** Custom label for "When Not to Apply" section */
    whenNotToApplyLabel?: string;
    /** Custom text for no conditions */
    noConditionsText?: string;
    /** Custom label for "View Override" button */
    viewOverrideLabel?: string;
    /** Custom label for "Hide Override" button */
    hideOverrideLabel?: string;
    /** Custom label for "Enable Learning" button for Rule*/
    enableLearningVariantLabel?: string;
    /** Custom label for "Disable Learning" button for Rule*/
    disableLearningVariantLabel?: string;
    /** Custom error message when history fetch fails */
    historyErrorMessage?: string;
    /** Custom label for "Resolve Gaps" button */
    resolveGapsLabel?: string;
    /** Whether to show the actions bar (Edit, Delete, View Override). Defaults to true */
    showActionsBar?: boolean;
    /** Whether to show the description box. Defaults to true */
    showDescriptionBox?: boolean;
    /** Whether to show condition blocks. Defaults to true */
    showConditions?: boolean;
    /** Whether to show the inheritance breadcrumb. Defaults to true */
    showInheritance?: boolean;
    /** Whether the "When to Apply" section should be open by default. Defaults to true */
    defaultApplyOpen?: boolean;
    /** Whether the "When Not to Apply" section should be open by default. Defaults to true */
    defaultNotApplyOpen?: boolean;
    /** Additional class name for the root container */
    className?: string;
    /** Whether this variant should be highlighted (for auto-scroll after creation) */
    isHighlighted?: boolean;
    /** Display names of all tiers that have highlighted variants (for cross-tier banner) */
    highlightedTierNames?: string[];
    /** Indicates whether the highlight corresponds to a newly Created vs edited variant */
    highlightAction?: 'new' | 'existing';
    /** Set of all highlighted variant IDs (for cross-tier scroll navigation) */
    highlightedVariantIds?: Set<string>;
    /** Custom header content */
    headerContent?: ReactNode;
    /** Custom footer content */
    footerContent?: ReactNode;
    /** func for fetch rules for enable/disable Btn */
    onToggleSuccess?: () => void;
    /** Callback to indicate which type of delete confirmation is used */
    setDeleteConfirmationUsedFor?: (value: 'ruleDeletion' | 'variantDeletion') => void;
    /** Callback when copying variant to another tier */
    onCopyToTier?: (variant: RuleVariant, ruleId: string, ruleTitle: string, sourceTier: string, targetTier: string) => void;
    /** Callback to set initial draft message for chat */
    onSetInitialDraftMessage?: (message: string) => void;
}
/**
 * VariantCard component displays a single rule variant with its details.
 * Layout per UX:
 * - Header row: Variant chip (left) + Edit/Delete/View Override buttons (right)
 * - Inheritance breadcrumb (if any) below header
 * - Description box
 * - When to Apply accordion (always shown)
 * - When Not to Apply accordion (always shown, even if empty)
 *
 * @param props - Component props
 * @returns JSX element displaying the variant card
 */
declare const VariantCard: React.FC<VariantCardProps>;
export default VariantCard;
//# sourceMappingURL=VariantCard.d.ts.map