import { ModifyArgs } from './useForm';
import { ComputedRef, MaybeRef, Reactive, ShallowRef } from 'vue';
export interface TableInstance {
    getTableList: () => void;
    search: (params?: Record<string, any>) => void;
    reset: () => void;
    tableData: MaybeRef<any[]>;
}
export interface FormModalInstance {
    open: () => void;
    modify: (...args: ModifyArgs) => void;
}
export interface DialogInstance {
    open: () => void;
}
export interface UseCrudPageReturnType<T extends TableInstance = TableInstance, F extends FormModalInstance = FormModalInstance, D extends DialogInstance = DialogInstance> {
    tableRef: ShallowRef<T | undefined>;
    formModalRef: ShallowRef<F | undefined>;
    dialogRef: ShallowRef<D | undefined>;
    keyword: Reactive<Record<string, any>>;
    tableData: ComputedRef<MaybeRef<any[]>>;
    refresh: () => void;
    search: (params?: Record<string, any>) => void;
    reset: () => void;
    openFormModal: () => void;
    editFormModal: (...args: ModifyArgs) => void;
    openDialog: () => void;
}
/**
 * @description 处理基础页面
 * @param {Record<string, any>} defaultKeyword 默认关键字
 * @returns {
 *  tableRef: ShallowRef<T | undefined>,
 *  formModalRef: ShallowRef<F | undefined>,
 *  dialogRef: ShallowRef<F | undefined>,
 *  tableData: ComputedRef<MaybeRef<any[]>>;
 *  keyword: reactive<Record<string, any>>,
 *  refresh: () => void,
 *  search: (params?: Record<string, any>) => void,
 *  reset: () => void,
 *  openFormModal: () => void,
 *  editFormModal: (...args: ModifyArgs) => void
 *  openDialog: () => void;
 * }
*/
export declare const useCrudPage: <T extends TableInstance = TableInstance, F extends FormModalInstance = FormModalInstance, D extends DialogInstance = DialogInstance>(defaultKeyword?: Record<string, any>) => UseCrudPageReturnType<T, F, D>;
