import { VNode } from 'vue';
import { XLCDP } from '@xhq-xlcdp/types';
import { TableProps } from 'element-plus';
export interface IScaffoldTableColumn {
    label: string;
    propName: string;
    options?: any;
    children?: IScaffoldTableColumn[];
    render?: (row: any) => VNode;
}
export interface IScaffoldQueryFormItem {
    is: any;
    default: any;
    label: string;
    props?: any;
    propName: string;
}
declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
        readonly onSearch?: (() => any) | undefined;
        readonly onSelectionChange?: ((selection: T[]) => any) | undefined;
    } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onSearch" | "onSelectionChange"> & {
        columns: IScaffoldTableColumn[];
        queryForm: IScaffoldQueryFormItem[];
        tableActions?: {
            text: string;
            authCode?: string | string[];
            onClick: (row: T) => void;
            condition?: (row: T) => boolean;
            props?: Record<string, any>;
        }[];
        tableOptions?: Partial<TableProps<T>>;
        fetchMethod?: XLCDP.IDatasourceConfig;
        showSelectedPreview?: boolean;
        showBatchActions?: boolean;
        previewPopWidth?: number;
    } & Partial<{}>> & import('vue').PublicProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{
        resetForm: () => void;
        getFormData: () => {
            [x: string]: any;
        };
        refresh: () => void;
        clearSelection: () => void;
        formData: import('vue').Ref<Record<string, any>, Record<string, any>>;
    }>): void;
    attrs: any;
    slots: {
        'query-actions-prefix'?(_: {}): any;
        'query-actions-suffix'?(_: {}): any;
        'before-table'?(_: {}): any;
        default?(_: {}): any;
        'selected-preview'?(_: {
            rows: import('@vue/reactivity').UnwrapRefSimple<T>[];
        }): any;
        'batch-actions'?(_: {
            rows: import('@vue/reactivity').UnwrapRefSimple<T>[];
        }): any;
    };
    emit: {
        (e: "search"): void;
        (e: "selectionChange", selection: T[]): void;
    };
}>) => import('vue').VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
export default _default;
type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};
