import React, { ReactNode } from 'react';
import { RuleDefinition } from '../types';
/**
 * Props for the RuleAccordionShell component.
 * This is a generic accordion wrapper that can contain any content.
 * Library-ready: fully controlled via props, no store access, no API calls.
 */
export interface RuleAccordionShellProps {
    /** The rule definition object (used for header) */
    rule: RuleDefinition;
    /** Index of the rule in the list */
    idx: number;
    /** Selected rule set ID used for scoped RBAC checks */
    ruleSetId?: string;
    /** Callback when remove/delete is clicked */
    onRemove?: () => void;
    /** Callback when edit is clicked */
    onEdit?: () => void;
    /** Whether the current rule set is global scope */
    isGlobalScope?: boolean;
    /** Custom label for delete button */
    deleteButtonLabel?: string;
    /** Custom label for edit button */
    editButtonLabel?: string;
    /** Whether the accordion should be open by default. Defaults to false. */
    defaultOpen?: boolean;
    /** Controlled open state (if provided, component becomes controlled) */
    isOpen?: boolean;
    /** Callback when accordion toggle is clicked */
    onToggle?: (isOpen: boolean) => void;
    /** Whether to show the delete button in the header. Defaults to true. */
    showDeleteButton?: boolean;
    /** Additional class name for the root container */
    className?: string;
    /** Content to render when accordion is expanded */
    children?: ReactNode;
    /** Custom label for "Enable Learning" button for Rule*/
    enableLearningRuleLabel?: string;
    /** Custom label for "Disable Learning" button for Rule*/
    disableLearningRuleLabel?: string;
    /** func for fetch rules for enable/disable Btn */
    onToggleSuccess?: () => void;
    /** Framer Motion drag controls */
    dragControls?: any;
}
/**
 * Generic accordion shell component.
 * Provides expand/collapse functionality with a header.
 * Use with any content - can wrap VariantList or any custom content.
 * Library-ready: fully controlled via props, no store access, no direct API calls.
 *
 * @example
 * // Controlled usage
 * <RuleAccordionShell rule={rule} idx={0} isOpen={open} onToggle={setOpen}>
 *   <VariantList rule={rule} />
 * </RuleAccordionShell>
 *
 * @example
 * // Uncontrolled usage with default open
 * <RuleAccordionShell rule={rule} idx={0} defaultOpen={true}>
 *   <CustomContent />
 * </RuleAccordionShell>
 *
 * @param props - Component props
 * @returns JSX element displaying the accordion shell
 */
declare const RuleAccordionShell: React.FC<RuleAccordionShellProps>;
export default RuleAccordionShell;
//# sourceMappingURL=RuleAccordionShell.d.ts.map