import { DataTypes, IdDefaultType, LabelDefaultType, ListType } from "@etsoo/shared";
import { FormControlProps } from "@mui/material/FormControl";
import React from "react";
/**
 * OptionGroupFlag methods ref
 */
export interface OptionGroupFlagRef {
    /**
     * Disable specific items with their ids
     * @param ids Ids
     */
    disable(ids: number[]): void;
}
/**
 * OptionGroupFlag props
 */
export type OptionGroupFlagProps<T extends object, D extends DataTypes.Keys<T, number>, L extends DataTypes.Keys<T, string>> = Omit<FormControlProps, "defaultValue"> & {
    /**
     * Default value
     */
    defaultValue?: T[D] & number;
    /**
     * Get option label function
     */
    getOptionLabel?: (option: T) => string;
    /**
     * Id field
     */
    idField?: D;
    /**
     * Label
     */
    label?: string;
    /**
     * Label field
     */
    labelField?: L;
    /**
     * Methods
     */
    mRef?: React.Ref<OptionGroupFlagRef>;
    /**
     * Field name
     */
    name: string;
    /**
     * On value change handler
     */
    onValueChange?: (value?: T[D] & number) => void;
    /**
     * Array of options.
     */
    options: ReadonlyArray<T>;
    /**
     * Is the field read only?
     */
    readOnly?: boolean;
    /**
     * Display group of elements in a compact row
     */
    row?: boolean;
    /**
     * Item size
     */
    itemSize?: "small" | "medium";
    /**
     * Helper text
     */
    helperText?: React.ReactNode;
};
/**
 * OptionGroupFlag
 * @param props Props
 * @returns Component
 */
export declare function OptionGroupFlag<T extends object = ListType, D extends DataTypes.Keys<T, number> = IdDefaultType<T, number>, L extends DataTypes.Keys<T, string> = LabelDefaultType<T>>(props: OptionGroupFlagProps<T, D, L>): import("react/jsx-runtime").JSX.Element;
