import { useTableModal } from './hooks/use-table-modal';
import { useTableSelectModal } from './hooks/use-table-select-modal';
import { CreateComponentPublicInstanceWithMixins, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComputedRef, ComponentProvideOptions, ComponentOptionsBase, VNodeProps, AllowedComponentProps, ComponentCustomProps, Plugin } from 'vue';
import { ApTableModalProps, OpenOptions, OpenReturnType } from './interface';
import { Recordable } from '../../type';
import { TableColumnsType } from '@aplus-frontend/antdv';
import { ApFormSearchFormPopoverSorterItem } from '../..';
import { MaskType } from '@aplus-frontend/antdv/es/_util/hooks/useMergedMask';
import { InternalPagingType } from '../../ap-table/hooks/use-table-paging-ng';
/**
 *
 */
declare const ApTableModal: {
    new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly< ApTableModalProps<any>> & Readonly<{
        onFinish?: ((selectedRowKeys: (string | number)[], selectedRows: any[]) => any) | undefined;
    }>, {
        open: <T>(selected?: any[], options?: OpenOptions) => Promise< OpenReturnType<T>>;
        close: () => void;
        getApTableInstance: () => {
            submit: () => void;
            submitWith: (resetCurrent?: boolean) => void;
            reset: () => void;
            refresh: () => void;
            setSearchFormValues: (fields: Partial< Recordable>) => void;
            getSearchFormValues: (transform?: boolean) => Partial< Recordable>;
            dataSource: any;
            rowSelection?: {
                select: (item: any) => void;
                selectAll: () => void;
                unSelectAll: () => void;
                selectedRows: any[];
                unSelect: (item: any) => void;
                isSelected: (item: any) => boolean;
                clearAll: () => void;
                toggleSelect: (item: any) => void;
                selectMulti: (items: any[]) => void;
                unSelectMulti: (items: any[]) => void;
            } | undefined;
            getShownColumns: () => TableColumnsType<any>;
            scrollBar: {
                x: {
                    getCurrentScroll: () => number;
                    scroll: (percent: number) => void | undefined;
                };
                y: undefined;
            };
            getPaging: () => Partial<{
                current: number;
                pageSize: number;
            }>;
            setPaging: (nextPaging: Partial<{
                current: number;
                pageSize: number;
            }>, refreshImmediately?: boolean) => void;
            getSearchFormSorterItems: () => ApFormSearchFormPopoverSorterItem[];
            setSearchFormSorterItems: (sortedItems: ApFormSearchFormPopoverSorterItem[]) => void;
            resetSearchFormSorterItems: () => void;
        } | null;
    }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
        finish: (selectedRowKeys: (string | number)[], selectedRows: any[]) => any;
    }, PublicProps, {
        mask: MaskType;
        maxCount: number;
        maskClosable: boolean;
        forceRender: boolean;
        keyboard: boolean;
        confirmLoading: boolean;
        closable: boolean;
        centered: boolean;
        destroyOnClose: boolean;
        getContainer: string | false | HTMLElement | (() => HTMLElement);
        focusTriggerAfterClose: boolean;
        api: (params: any) => Promise<{
            records: any[];
            total: number;
        }>;
        isRenderModalTitleSuffix: boolean;
    }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
        apTableRef: {
            submit: () => void;
            reset: () => void;
            refresh: () => void;
            submitWith: () => void;
            setSearchFormValues: (fields: any) => void;
            getSearchFormValues: (transform?: boolean) => Partial<any> | undefined;
            setPaging: (nextPaging: Partial<{
                current: number;
                pageSize: number;
            }>, refreshImmediately?: boolean) => void;
            getPaging: () => {
                current?: number | undefined;
                pageSize?: number | undefined;
            };
            getShownColumns: () => TableColumnsType<any>;
            dataSource: any[];
            rowSelection: {
                select: (item: any) => void;
                unSelect: (item: any) => void;
                isSelected: (item: any) => boolean;
                selectAll: () => void;
                unSelectAll: () => void;
                clearAll: () => void;
                toggleSelect: (item: any) => void;
                selectMulti: (items: any[]) => void;
                unSelectMulti: (items: any[]) => void;
                selectedRows: ComputedRef<any[]>;
            };
            scrollBar: {
                x: {
                    getCurrentScroll: () => number;
                    scroll: (percent: number) => void | undefined;
                };
                y: undefined;
            };
            getSearchFormSorterItems: () => ApFormSearchFormPopoverSorterItem[];
            setSearchFormSorterItems: (sortedItems: ApFormSearchFormPopoverSorterItem[]) => void;
            resetSearchFormSorterItems: () => void;
        } | null;
    }, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ApTableModalProps<any>> & Readonly<{
        onFinish?: ((selectedRowKeys: (string | number)[], selectedRows: any[]) => any) | undefined;
    }>, {
        open: <T>(selected?: any[], options?: OpenOptions) => Promise< OpenReturnType<T>>;
        close: () => void;
        getApTableInstance: () => {
            submit: () => void;
            submitWith: (resetCurrent?: boolean) => void;
            reset: () => void;
            refresh: () => void;
            setSearchFormValues: (fields: Partial< Recordable>) => void;
            getSearchFormValues: (transform?: boolean) => Partial< Recordable>;
            dataSource: any;
            rowSelection?: {
                select: (item: any) => void;
                selectAll: () => void;
                unSelectAll: () => void;
                selectedRows: any[];
                unSelect: (item: any) => void;
                isSelected: (item: any) => boolean;
                clearAll: () => void;
                toggleSelect: (item: any) => void;
                selectMulti: (items: any[]) => void;
                unSelectMulti: (items: any[]) => void;
            } | undefined;
            getShownColumns: () => TableColumnsType<any>;
            scrollBar: {
                x: {
                    getCurrentScroll: () => number;
                    scroll: (percent: number) => void | undefined;
                };
                y: undefined;
            };
            getPaging: () => Partial<{
                current: number;
                pageSize: number;
            }>;
            setPaging: (nextPaging: Partial<{
                current: number;
                pageSize: number;
            }>, refreshImmediately?: boolean) => void;
            getSearchFormSorterItems: () => ApFormSearchFormPopoverSorterItem[];
            setSearchFormSorterItems: (sortedItems: ApFormSearchFormPopoverSorterItem[]) => void;
            resetSearchFormSorterItems: () => void;
        } | null;
    }, {}, {}, {}, {
        mask: MaskType;
        maxCount: number;
        maskClosable: boolean;
        forceRender: boolean;
        keyboard: boolean;
        confirmLoading: boolean;
        closable: boolean;
        centered: boolean;
        destroyOnClose: boolean;
        getContainer: string | false | HTMLElement | (() => HTMLElement);
        focusTriggerAfterClose: boolean;
        api: (params: any) => Promise<{
            records: any[];
            total: number;
        }>;
        isRenderModalTitleSuffix: boolean;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & ComponentOptionsBase<Readonly< ApTableModalProps<any>> & Readonly<{
    onFinish?: ((selectedRowKeys: (string | number)[], selectedRows: any[]) => any) | undefined;
}>, {
    open: <T>(selected?: any[], options?: OpenOptions) => Promise< OpenReturnType<T>>;
    close: () => void;
    getApTableInstance: () => {
        submit: () => void;
        submitWith: (resetCurrent?: boolean) => void;
        reset: () => void;
        refresh: () => void;
        setSearchFormValues: (fields: Partial< Recordable>) => void;
        getSearchFormValues: (transform?: boolean) => Partial< Recordable>;
        dataSource: any;
        rowSelection?: {
            select: (item: any) => void;
            selectAll: () => void;
            unSelectAll: () => void;
            selectedRows: any[];
            unSelect: (item: any) => void;
            isSelected: (item: any) => boolean;
            clearAll: () => void;
            toggleSelect: (item: any) => void;
            selectMulti: (items: any[]) => void;
            unSelectMulti: (items: any[]) => void;
        } | undefined;
        getShownColumns: () => TableColumnsType<any>;
        scrollBar: {
            x: {
                getCurrentScroll: () => number;
                scroll: (percent: number) => void | undefined;
            };
            y: undefined;
        };
        getPaging: () => InternalPagingType;
        setPaging: (nextPaging: InternalPagingType, refreshImmediately?: boolean) => void;
        getSearchFormSorterItems: () => ApFormSearchFormPopoverSorterItem[];
        setSearchFormSorterItems: (sortedItems: ApFormSearchFormPopoverSorterItem[]) => void;
        resetSearchFormSorterItems: () => void;
    } | null;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    finish: (selectedRowKeys: (string | number)[], selectedRows: any[]) => any;
}, string, {
    mask: MaskType;
    maxCount: number;
    maskClosable: boolean;
    forceRender: boolean;
    keyboard: boolean;
    confirmLoading: boolean;
    closable: boolean;
    centered: boolean;
    destroyOnClose: boolean;
    getContainer: string | false | HTMLElement | (() => HTMLElement);
    focusTriggerAfterClose: boolean;
    api: (params: any) => Promise<{
        records: any[];
        total: number;
    }>;
    isRenderModalTitleSuffix: boolean;
}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & ( Plugin & (new (...args: any[]) => {
    $props: {
        onClick?: () => void;
    };
}));
export default ApTableModal;
export { ApTableModal, useTableModal, useTableSelectModal };
