import React, { ReactNode } from 'react';
import { RuleVariant, OverrideHistoryResponse, RuleTier } from '../types';
import VariantCard, { VariantCardProps } from './VariantCard';
/**
 * Props for the VariantList component.
 * Library-ready: fully controlled via props, no store access, no API calls.
 */
export interface VariantListProps {
    /** Array of variants to display */
    variants: RuleVariant[];
    /** Parent rule ID */
    ruleId: string;
    /** 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;
    /** All tiers data for linked variant lookup */
    allTiers?: RuleTier[];
    /** Current tier ID */
    currentTierId?: string;
    /** Callback when Edit button is clicked on any variant */
    onEditVariant?: (variant: RuleVariant, ruleId: string, tierName?: string, action?: 'edit' | 'resolve_gaps') => void;
    /** Callback when Delete button is clicked on any variant */
    onDeleteVariant?: (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 text when no variants exist */
    noVariantsText?: string;
    /** Custom label for "View Override" button */
    viewOverrideLabel?: string;
    /** Custom label for "Hide Override" button */
    hideOverrideLabel?: string;
    /** Custom label for "Enable Learning" button for variant*/
    enableLearningVariantLabel?: string;
    /** Custom label for "Disable Learning" button for variant*/
    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). 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;
    /** Whether to show connecting lines between variants. Defaults to true */
    showConnectors?: boolean;
    /** Additional class name for the root container */
    className?: string;
    /** Custom renderer for each variant card. If provided, replaces default VariantCard. */
    renderVariant?: (variant: RuleVariant, index: number, props: Partial<VariantCardProps>) => ReactNode;
    /** Content to render when there are no variants */
    emptyContent?: ReactNode;
    /** Map of highlighted variant IDs to their action type */
    highlightedVariants?: Map<string, 'new' | 'existing'>;
    /** Display names of all tiers that have highlighted variants (for cross-tier banner) */
    highlightedTierNames?: string[];
    /** func for fetch rules for enable/disable Btn */
    onToggleSuccess?: () => void;
    setDeleteConfirmationUsedFor?: (value: 'ruleDeletion' | 'variantDeletion') => void;
    /** Optional callback when copying a variant to another tier */
    onCopyToTier?: (variant: RuleVariant, ruleId: string, ruleTitle: string, sourceTier: string, targetTier: string) => void;
}
/**
 * VariantList component displays a list of rule variants with connecting lines.
 * Library-ready: fully controlled via props, no store access, no direct API calls.
 *
 * @example
 * <VariantList
 *   variants={rule.variants}
 *   ruleId={rule.ruleId}
 *   tierName="Tier 1"
 *   onEditVariant={handleEdit}
 *   onDeleteVariant={handleDelete}
 * />
 *
 * @param props - Component props
 * @returns JSX element displaying the list of variants
 */
declare const VariantList: React.FC<VariantListProps>;
export default VariantList;
export { VariantCard };
export type { VariantCardProps };
//# sourceMappingURL=VariantList.d.ts.map