import type { ComputedRef, PropType, ExtractPropTypes, SetupContext } from 'vue';
import type { FormFieldsItem, Payload, RecordString } from './../../edit-page-layout';
import type { ModalType, RequestMethod } from './../../field-select-modal/src/field-select-modal-types';
export { RecordString };
export interface Columns {
    type?: string;
    field?: string;
    title?: string;
    align?: string;
    fieldLabelI18nKey?: string;
    width?: number;
}
export interface ExtendFunImport {
    pageData: RecordString;
    userInfo: RecordString;
    row?: RecordString;
    idx?: number;
}
export type HandleBefore = (value: ExtendFunImport) => Promise<string | boolean | void>;
export type HandleAfter = (value: ExtendFunImport) => void;
export type ModalParams = Record<number | string, unknown> | ((value: ExtendFunImport) => Record<number | string, unknown>);
export interface DefaultPayload {
    ctx?: SetupContext;
    value?: Payload;
}
export interface Extend {
    current?: number;
    modalColumns: Columns[];
    modalUrl: string;
    modalConfigs?: unknown[];
    modalParams?: ModalParams;
    params?: ModalParams;
    checkItemParams?: ModalParams;
    showCheckItem?: boolean;
    selectModal?: ModalType;
    requestMethod?: RequestMethod;
    isTree?: boolean;
    treeConfig?: Record<number | string, unknown>;
    handleBefore?: HandleBefore;
    handleAfter?: HandleAfter;
    handleListData?: () => void;
}
export interface Config extends FormFieldsItem {
    extend: Extend;
}
export declare const selectModalProps: {
    value: {
        type: StringConstructor;
        default: string;
    };
    config: {
        type: PropType<Config>;
        default: () => {};
    };
    row: {
        type: PropType<Record<string | number, unknown>>;
        default: () => {};
    };
    idx: {
        type: NumberConstructor;
        default: number;
    };
    onChange: {
        type: PropType<((value: RecordString[]) => void) | ((value: RecordString[]) => void)[]>;
        default: unknown;
    };
};
export type SelectModalProps = ExtractPropTypes<typeof selectModalProps>;
export interface UseSelectModalType {
    classes: ComputedRef<{
        [key: string]: string | boolean;
    }>;
}
