import type { ComponentPublicInstance, ExtractPropTypes, PropType, VNode } from "vue"; import type { BreakAfterProperty } from "csstype"; export declare const nPrintProps: () => { /** * 打印时的文档标题 */ readonly title: { readonly type: StringConstructor; readonly default: ""; }; readonly size: { readonly type: PropType; readonly default: "A4"; }; readonly orientation: { readonly type: PropType; readonly default: "portrait"; }; /** * 外边距 */ readonly margin: { readonly type: PropType; readonly default: "0"; }; /** * 内边距 */ readonly padding: { readonly type: PropType; readonly default: "0"; }; readonly pagingMode: { readonly type: PropType; readonly default: NPrintPagingMode.AUTO; }; readonly onClose: { readonly type: PropType<() => void>; readonly default: () => void; }; readonly onError: { readonly type: PropType<(error: Error) => void>; readonly default: (error: Error) => never; }; readonly contextSlots: { readonly type: PropType<{ default: () => Array; header: () => Array; toolbar: (props: { print: () => void; }) => Array; }>; readonly default: () => {}; }; }; export declare type NPrintProps = ExtractPropTypes>; export declare type NPrintPresetPageSize = "A5" | "A4" | "A3" | "B5" | "B4" | "JIS-B5" | "JIS-B4" | "letter" | "legal" | "ledger"; export declare type NPrintPageSize = NPrintPresetPageSize | string | [string, string]; /** * 纸张方向, 根据定义: * - portrait: 矩形平面以短边为底边的方向, 即高度大于等于宽度 * - landscape: 矩形平面以长边为底边的方向, 即宽度大于高度 * * @see https://zhuanlan.zhihu.com/p/19974005 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/orientation */ export declare type NPrintPageOrientation = "portrait" | "landscape"; export declare type NPrintMarginObject = { top: string; bottom: string; left: string; right: string; }; export declare type NPrintMargin = string | NPrintMarginObject; export declare type NPrintPadding = string | NPrintMarginObject; /** * 分页模式 */ export declare enum NPrintPagingMode { /** * 自动分页, 当内容超出一页时自动分页. */ AUTO = "auto", /** * 裁剪分页, 当内容超出一页时不分页, 超出部分被裁剪. */ CLIP = "clip", /** * 紧凑分页, 类似自动分页, 但当一页纸能够完整渲染多个 {@link NPrintPage} 时, 会尽量将多个内容渲染在同一页纸上. */ COMPACT = "compact" } export declare const nPrintPageProps: () => { readonly width: { readonly type: StringConstructor; readonly default: "0"; }; readonly height: { readonly type: StringConstructor; readonly default: "0"; }; readonly margin: { readonly type: PropType; readonly default: () => {}; }; readonly padding: { readonly type: PropType; readonly default: () => {}; }; readonly breakAfter: { readonly type: PropType; readonly default: ""; }; readonly overflow: { readonly type: PropType; readonly default: ""; }; }; export declare type NPrintPageProps = ExtractPropTypes>; export declare const NPrintPagePropsKey = "PRINT_PAGE_PROPS_KEY"; export declare const nPrintBaseProps: () => { /** * 自定义打印函数, 用于自定义打印逻辑. */ readonly customPrint: { readonly type: PropType; }; /** * 打印时的文档标题 */ readonly title: { readonly type: StringConstructor; readonly default: ""; }; readonly size: { readonly type: PropType; readonly default: "A4"; }; readonly orientation: { readonly type: PropType; readonly default: "portrait"; }; /** * 外边距 */ readonly margin: { readonly type: PropType; readonly default: "0"; }; /** * 内边距 */ readonly padding: { readonly type: PropType; readonly default: "0"; }; readonly pagingMode: { readonly type: PropType; readonly default: NPrintPagingMode.AUTO; }; readonly onClose: { readonly type: PropType<() => void>; readonly default: () => void; }; readonly onError: { readonly type: PropType<(error: Error) => void>; readonly default: (error: Error) => never; }; readonly contextSlots: { readonly type: PropType<{ default: () => Array; header: () => Array; toolbar: (props: { print: () => void; }) => Array; }>; readonly default: () => {}; }; }; export declare type NPrintBaseCustomPrintFunc = (props: Readonly, element: HTMLElement) => void | Promise; export declare type NPrintBaseProps = ExtractPropTypes>; export declare type NPrintBaseExpose = { print: () => void; }; export declare type NPrintBaseInstance = ComponentPublicInstance; export declare type NPrintInstance = ComponentPublicInstance;