import type { PropType, ExtractPropTypes, Ref, ComputedRef, Component } from 'vue';
import type { ComponentSize } from '../../_utils/types';
import type { IRecord } from '../../table/src/table/types';
export declare const _props: {
    dataSource: {
        type: PropType<IRecord<any> | IRecord<any>[]>;
        required: boolean;
    };
    templateRender: {
        type: PropType<Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>>;
        default: null;
    };
    size: {
        type: PropType<ComponentSize>;
        validator: (val: string) => boolean;
    };
    uniqueKey: {
        type: StringConstructor;
    };
    defaultConfig: {
        type: PropType<Record<string, number>>;
    };
    preview: {
        type: BooleanConstructor;
        default: boolean;
    };
    closeAfterPrint: {
        type: BooleanConstructor;
    };
    text: BooleanConstructor;
    type: {
        readonly type: PropType<"" | "default" | "text" | "success" | "warning" | "info" | "primary" | "danger">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "";
    };
    click: {
        type: PropType<(ev: MouseEvent) => void | Promise<void>>;
    };
    shortcutKey: {
        type: StringConstructor;
    };
    authConfig: {
        type: PropType<import("../../_utils/types").IAuth>;
        default: () => {};
    };
    confirm: {
        type: PropType<{
            title?: string | import("../../_utils/types").JSXElement | undefined;
            onConfirm?: (() => void) | undefined;
            onCancel?: (() => void) | undefined;
        }>;
        default: undefined;
    };
    tabindex: {
        type: NumberConstructor;
    };
    disabled: BooleanConstructor;
    icon: {
        readonly type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    nativeType: {
        readonly type: PropType<"button" | "reset" | "submit">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "button";
    };
    loadingIcon: {
        readonly type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: () => any;
    };
    plain: BooleanConstructor;
    link: BooleanConstructor;
    bg: BooleanConstructor;
    autofocus: BooleanConstructor;
    round: BooleanConstructor;
    circle: BooleanConstructor;
    color: StringConstructor;
    dark: BooleanConstructor;
    autoInsertSpace: {
        readonly type: PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: undefined;
    };
    tag: {
        readonly type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "button";
    };
};
export declare const _itemProps: {
    dataSource: {
        type: PropType<IRecord<any> | IRecord<any>[]>;
        required: boolean;
    };
    templateRender: {
        type: PropType<Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>>;
        default: null;
    };
    size: {
        type: PropType<ComponentSize>;
        validator: (val: string) => boolean;
    };
    uniqueKey: {
        type: StringConstructor;
    };
    label: {
        type: StringConstructor;
    };
    disabled: {
        type: BooleanConstructor;
    };
    defaultConfig: {
        type: PropType<Record<string, number>>;
    };
    closeAfterPrint: {
        type: BooleanConstructor;
    };
};
export declare const _groupProps: {
    size: {
        type: PropType<ComponentSize>;
        validator: (val: string) => boolean;
    };
    uniqueKey: {
        type: StringConstructor;
    };
};
export declare const _emits: {
    open: () => boolean;
    close: () => boolean;
    print: (value: boolean) => boolean;
    export: (value: boolean) => boolean;
};
export type PrintProps = ExtractPropTypes<typeof _props>;
export type PrintItemProps = ExtractPropTypes<typeof _itemProps>;
export type PrintGroupProps = ExtractPropTypes<typeof _groupProps>;
export type PrintEmits = typeof _emits;
export type PreviewInstance = {
    containerRef: ContainInstance;
};
export type ContainInstance = {
    SHOW_PREVIEW: () => Promise<void>;
    DIRECT_PRINT: () => Promise<void>;
    createExportHtml: () => string;
    createPrintHtml: (printPageNumber?: number) => string;
    createPreviewDom: () => void;
};
export type PreviewInject = {
    currentPage: Ref<number>;
    printPage: Ref<number | undefined>;
    totalPage: Ref<number>;
    visible: Ref<boolean>;
    form: Ref<PreviewForm>;
    pageSizeArr: ComputedRef<number[]>;
    printerKey: ComputedRef<string>;
    isWindowsPrinter: ComputedRef<boolean>;
    uniqueKey: string;
    closeAfterPrint: boolean;
    doClose: () => void;
};
export type PreviewForm = {
    printerName: number;
    printerType: string;
    copies: number;
    scale: number;
    setting: {
        distance: {
            left: number;
            right: number;
            top: number;
            bottom: number;
        };
        pageSize: string;
        direction: string;
        doubleSide: number;
        doubleSideType: string;
        fixedLogo: number;
    };
};
