import { ITableColumn } from '../PageTable/PageTableColumn';
import { ISelected } from '../PageTable/useTableItems';
import { IToolbarFilter } from '../PageToolbar/PageToolbarFilter';
import { IView } from '../useView';
interface ISelectDialogOptions<T extends object, TMultiple> {
    view: IView & ISelected<T> & {
        itemCount?: number;
        pageItems: T[] | undefined;
    };
    tableColumns: ITableColumn<T>[];
    toolbarFilters: IToolbarFilter[];
    confirm: string;
    cancel: string;
    selected: string;
    isMultiple?: TMultiple extends true ? true : false;
}
export declare function useSelectDialog<T extends {
    id: number | string;
    name: string | undefined;
}, TMultiple = false>(options: ISelectDialogOptions<T, TMultiple>): (onSelect?: TMultiple extends true ? (item: T[]) => void : (item: T) => void, title?: string) => void;
export type SelectDialogProps<T extends object, TMultiple> = {
    title: string;
    open: boolean;
    isMultiple?: TMultiple extends true ? true : false;
    setOpen: (open: boolean) => void;
    onSelect: TMultiple extends true ? (item: T[]) => void : (item: T) => void;
    keyFn: (item: T) => string | number;
} & ISelectDialogOptions<T, TMultiple>;
export declare function SelectDialog<T extends {
    id: number | string;
    name: string | undefined;
}, TMultiple = false>(props: SelectDialogProps<T, TMultiple>): import("react/jsx-runtime").JSX.Element;
export {};
