import { ReactNode } from 'react';
import { StatusLabelProps } from '../status-label/StatusLabel.types';
export type LeadingDecoration = 'device' | 'app' | 'avatar' | 'icon';
export type DividerPosition = 'top' | 'bottom' | 'none';
export type FilterContentType = 'checkbox' | 'radio';
export interface OptionalCopy {
    text: ReactNode;
    icon?: ReactNode;
    iconA11yLabel?: string;
}
interface ListItemFilterPropsBase {
    /** Primary label text. */
    label: string;
    /** Unique ID for the label element. Auto-generated if omitted. */
    labelId?: string;
    /** Optional body copy lines below the label. */
    body?: OptionalCopy[];
    /** Optional status label config rendered in main content. */
    status?: StatusLabelProps;
    /** Type of leading decoration. */
    leadingDecorationType?: LeadingDecoration;
    /** Image source for device/app/avatar leading decoration. */
    leadingImage?: string;
    /** Icon ReactNode for icon leading decoration. */
    leadingIcon?: ReactNode;
    /** Accessible label for the leading decoration. */
    leadingDecorationA11yLabel?: string;
    /** Position of the divider. Defaults to 'bottom'. */
    dividerPosition?: DividerPosition;
    /** Enable inverse (dark background) styling. */
    inverse?: boolean;
    /** Whether the trailing control is checked. */
    checked?: boolean;
    /** Force focus state for snapshot testing. */
    focused?: boolean;
    /** Additional CSS class names. */
    className?: string;
}
interface CheckboxFilterProps extends ListItemFilterPropsBase {
    /** Type of trailing content control. */
    trailingContentType: 'checkbox';
    /** Radio group name (not used for checkbox). */
    radioGroupName?: string;
}
interface RadioFilterProps extends ListItemFilterPropsBase {
    /** Type of trailing content control. */
    trailingContentType: 'radio';
    /** Radio group name (required for radio). */
    radioGroupName: string;
}
export type ListItemFilterProps = CheckboxFilterProps | RadioFilterProps;
export {};
//# sourceMappingURL=ListItemFilter.types.d.ts.map