g-ui-web
Version:
900 lines • 59.5 kB
TypeScript
import { nextTick } from 'vue';
import { CalendarDateType } from 'element-plus';
import { default as dayjs } from 'dayjs';
declare function __VLS_template(): {
slots: {
legend?(_: {}): any;
todo?(_: {
data: any;
}): any;
todo?(_: {
data: any;
}): any;
todo?(_: {
data: any;
}): any;
todo?(_: {
data: any;
}): any;
"todo-dialog"?(_: {
data: any;
}): any;
"todo-dialog"?(_: {
data: any;
}): any;
monthHeader?(_: {
data: {
name: string;
value: string;
};
}): any;
};
refs: {
calendar: ({
$: import('vue').ComponentInternalInstance;
$data: {};
$props: Partial<{}> & Omit<{
readonly modelValue?: Date | undefined;
readonly range?: [Date, Date] | undefined;
"onUpdate:modelValue"?: ((value: Date) => any) | undefined | undefined;
onInput?: ((value: Date) => any) | undefined | undefined;
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>;
$attrs: {
[x: string]: unknown;
};
$refs: {
[x: string]: unknown;
};
$slots: Readonly<{
[name: string]: import('vue').Slot<any> | undefined;
}>;
$root: ComponentPublicInstance | null;
$parent: ComponentPublicInstance | null;
$host: Element | null;
$emit: ((event: "input", value: Date) => void) & ((event: "update:modelValue", value: Date) => void);
$el: any;
$options: import('vue').ComponentOptionsBase<Readonly<globalThis.ExtractPropTypes<{
readonly modelValue: {
readonly type: import('vue').PropType<Date>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly range: {
readonly type: import('vue').PropType<[Date, Date]>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>> & {
"onUpdate:modelValue"?: ((value: Date) => any) | undefined;
onInput?: ((value: Date) => any) | undefined;
}, {
selectedDay: import('vue').WritableComputedRef<import('dayjs').Dayjs | undefined>;
pickDay: (day: import('dayjs').Dayjs) => void;
selectDate: (type: import('element-plus/es/components/calendar/src/calendar').CalendarDateType) => void;
calculateValidatedDateRange: (startDayjs: import('dayjs').Dayjs, endDayjs: import('dayjs').Dayjs) => [import('dayjs').Dayjs, import('dayjs').Dayjs][];
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
"update:modelValue": (value: Date) => void;
input: (value: Date) => void;
}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
beforeCreate?: (() => void) | (() => void)[];
created?: (() => void) | (() => void)[];
beforeMount?: (() => void) | (() => void)[];
mounted?: (() => void) | (() => void)[];
beforeUpdate?: (() => void) | (() => void)[];
updated?: (() => void) | (() => void)[];
activated?: (() => void) | (() => void)[];
deactivated?: (() => void) | (() => void)[];
beforeDestroy?: (() => void) | (() => void)[];
beforeUnmount?: (() => void) | (() => void)[];
destroyed?: (() => void) | (() => void)[];
unmounted?: (() => void) | (() => void)[];
renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
};
$forceUpdate: () => void;
$nextTick: typeof nextTick;
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
} & Readonly<{}> & Omit<Readonly<globalThis.ExtractPropTypes<{
readonly modelValue: {
readonly type: import('vue').PropType<Date>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly range: {
readonly type: import('vue').PropType<[Date, Date]>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>> & {
"onUpdate:modelValue"?: ((value: Date) => any) | undefined;
onInput?: ((value: Date) => any) | undefined;
}, "selectedDay" | "pickDay" | "selectDate" | "calculateValidatedDateRange"> & import('vue').ShallowUnwrapRef<{
selectedDay: import('vue').WritableComputedRef<import('dayjs').Dayjs | undefined>;
pickDay: (day: import('dayjs').Dayjs) => void;
selectDate: (type: import('element-plus/es/components/calendar/src/calendar').CalendarDateType) => void;
calculateValidatedDateRange: (startDayjs: import('dayjs').Dayjs, endDayjs: import('dayjs').Dayjs) => [import('dayjs').Dayjs, import('dayjs').Dayjs][];
}> & {} & import('@vue/runtime-core').ComponentCustomProperties & {} & {
$slots: {
header?(_: {
date: string;
}): any;
"date-cell"?(_: {
data: {
isSelected: boolean;
type: string;
day: string;
date: Date;
};
}): any;
"date-cell"?(_: {
data: {
isSelected: boolean;
type: string;
day: string;
date: Date;
};
}): any;
};
}) | null;
popRef: (({
$: import('vue').ComponentInternalInstance;
$data: {};
$props: Partial<{
readonly disabled: boolean;
readonly width: import('element-plus/es/utils').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
readonly content: string;
readonly offset: number;
readonly visible: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => boolean) | (() => boolean | null) | ((new (...args: any[]) => boolean) | (() => boolean | null))[], unknown, unknown>;
readonly placement: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement) | ((new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement))[], unknown, unknown>;
readonly effect: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect) | ((new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect))[], unknown, unknown>;
readonly showAfter: number;
readonly hideAfter: number;
readonly autoClose: number;
readonly tabindex: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | ((new (...args: any[]) => string | number) | (() => string | number))[], unknown, unknown>;
readonly trigger: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>) | ((new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>))[], unknown, unknown>;
readonly popperOptions: Partial<import('element-plus').Options>;
readonly enterable: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly teleported: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly persistent: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly showArrow: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
}> & Omit<{
readonly visible: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => boolean) | (() => boolean | null) | ((new (...args: any[]) => boolean) | (() => boolean | null))[], unknown, unknown>;
readonly width: import('element-plus/es/utils').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
readonly showArrow: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly disabled: boolean;
readonly trigger: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>) | ((new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>))[], unknown, unknown>;
readonly content: string;
readonly persistent: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly teleported: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly effect: any;
readonly enterable: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly placement: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement) | ((new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement))[], unknown, unknown>;
readonly popperOptions: Partial<import('element-plus').Options>;
readonly showAfter: number;
readonly hideAfter: number;
readonly autoClose: number;
readonly tabindex: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | ((new (...args: any[]) => string | number) | (() => string | number))[], unknown, unknown>;
readonly offset?: number | undefined;
readonly title?: string | undefined;
readonly transition?: string | undefined;
readonly popperClass?: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | ((new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]))[], unknown, unknown> | undefined;
readonly popperStyle?: import('vue').StyleValue;
"onUpdate:visible"?: (((visible: boolean) => void) & ((value: boolean) => any)) | undefined;
"onAfter-enter"?: (() => any) | undefined | undefined;
"onAfter-leave"?: (() => any) | undefined | undefined;
"onBefore-enter"?: (() => any) | undefined | undefined;
"onBefore-leave"?: (() => any) | undefined | undefined;
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "offset" | "visible" | "width" | "showArrow" | "disabled" | "trigger" | "content" | "persistent" | "teleported" | "effect" | "enterable" | "placement" | "popperOptions" | "showAfter" | "hideAfter" | "autoClose" | "tabindex">;
$attrs: {
[x: string]: unknown;
};
$refs: {
[x: string]: unknown;
};
$slots: Readonly<{
[name: string]: import('vue').Slot<any> | undefined;
}>;
$root: ComponentPublicInstance | null;
$parent: ComponentPublicInstance | null;
$host: Element | null;
$emit: ((event: "after-enter") => void) & ((event: "after-leave") => void) & ((event: "before-enter") => void) & ((event: "before-leave") => void) & ((event: "update:visible", value: boolean) => void);
$el: any;
$options: import('vue').ComponentOptionsBase<Readonly<globalThis.ExtractPropTypes<{
readonly trigger: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>) | ((new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>))[], unknown, unknown, "hover", boolean>;
readonly placement: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement) | ((new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement))[], unknown, unknown, "bottom", boolean>;
readonly disabled: BooleanConstructor;
readonly visible: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => boolean) | (() => boolean | null) | ((new (...args: any[]) => boolean) | (() => boolean | null))[], unknown, unknown, null, boolean>;
readonly transition: StringConstructor;
readonly popperOptions: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => Partial<import('element-plus').Options>) | (() => Partial<import('element-plus').Options>) | ((new (...args: any[]) => Partial<import('element-plus').Options>) | (() => Partial<import('element-plus').Options>))[], unknown, unknown, () => {}, boolean>;
readonly tabindex: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | ((new (...args: any[]) => string | number) | (() => string | number))[], unknown, unknown, 0, boolean>;
readonly content: import('element-plus/es/utils').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly popperStyle: {
readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string | import('vue').CSSProperties | import('vue').StyleValue[]) | (() => import('vue').StyleValue) | ((new (...args: any[]) => string | import('vue').CSSProperties | import('vue').StyleValue[]) | (() => import('vue').StyleValue))[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly popperClass: {
readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | ((new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]))[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly enterable: {
readonly default: true;
readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
readonly __epPropKey: true;
};
readonly effect: {
readonly default: "light";
readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect) | ((new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect))[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
readonly __epPropKey: true;
};
readonly teleported: import('element-plus/es/utils').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly title: StringConstructor;
readonly width: import('element-plus/es/utils').EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 150, boolean>;
readonly offset: import('element-plus/es/utils').EpPropFinalized<NumberConstructor, unknown, unknown, undefined, boolean>;
readonly showAfter: import('element-plus/es/utils').EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
readonly hideAfter: import('element-plus/es/utils').EpPropFinalized<NumberConstructor, unknown, unknown, 200, boolean>;
readonly autoClose: import('element-plus/es/utils').EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
readonly showArrow: import('element-plus/es/utils').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly persistent: import('element-plus/es/utils').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly 'onUpdate:visible': {
readonly type: import('vue').PropType<(visible: boolean) => void>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>> & {
"onUpdate:visible"?: ((value: boolean) => any) | undefined;
"onAfter-enter"?: (() => any) | undefined;
"onAfter-leave"?: (() => any) | undefined;
"onBefore-enter"?: (() => any) | undefined;
"onBefore-leave"?: (() => any) | undefined;
}, {
popperRef: import('vue').ComputedRef<({
$: import('vue').ComponentInternalInstance;
$data: {};
$props: Partial<{
readonly role: import('element-plus/es/utils').EpPropMergeType<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown>;
}> & Omit<Readonly<import('vue').ExtractPropTypes<{
readonly role: import('element-plus/es/utils').EpPropFinalized<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown, "tooltip", boolean>;
}>> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "role">;
$attrs: {
[x: string]: unknown;
};
$refs: {
[x: string]: unknown;
};
$slots: import('vue').Slots;
$root: import('vue').ComponentPublicInstance | null;
$parent: import('vue').ComponentPublicInstance | null;
$emit: (event: string, ...args: any[]) => void;
$el: any;
$options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
readonly role: import('element-plus/es/utils').EpPropFinalized<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown, "tooltip", boolean>;
}>>, {
triggerRef: import('vue').Ref<import('element-plus/es/element-plus').Measurable | undefined>;
contentRef: import('vue').Ref<HTMLElement | undefined>;
popperInstanceRef: import('vue').Ref<import('@popperjs/core').Instance | undefined>;
referenceRef: import('vue').Ref<import('element-plus/es/element-plus').Measurable | undefined>;
role: import('vue').ComputedRef<string>;
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, Record<string, any>, string, {
readonly role: import('element-plus/es/utils').EpPropMergeType<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown>;
}> & {
beforeCreate?: (() => void) | (() => void)[];
created?: (() => void) | (() => void)[];
beforeMount?: (() => void) | (() => void)[];
mounted?: (() => void) | (() => void)[];
beforeUpdate?: (() => void) | (() => void)[];
updated?: (() => void) | (() => void)[];
activated?: (() => void) | (() => void)[];
deactivated?: (() => void) | (() => void)[];
beforeDestroy?: (() => void) | (() => void)[];
beforeUnmount?: (() => void) | (() => void)[];
destroyed?: (() => void) | (() => void)[];
unmounted?: (() => void) | (() => void)[];
renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
};
$forceUpdate: () => void;
$nextTick: typeof import('vue').nextTick;
$watch(source: string | Function, cb: Function, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
} & Readonly<import('vue').ExtractPropTypes<{
readonly role: import('element-plus/es/utils').EpPropFinalized<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown, "tooltip", boolean>;
}>> & import('vue').ShallowUnwrapRef<{
triggerRef: import('vue').Ref<import('element-plus/es/element-plus').Measurable | undefined>;
contentRef: import('vue').Ref<HTMLElement | undefined>;
popperInstanceRef: import('vue').Ref<import('@popperjs/core').Instance | undefined>;
referenceRef: import('vue').Ref<import('element-plus/es/element-plus').Measurable | undefined>;
role: import('vue').ComputedRef<string>;
}> & {} & import('vue').ComponentCustomProperties & {
$slots: {
default?(_: {}): any;
};
}) | undefined>;
hide: () => void;
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
"after-enter": () => void;
"after-leave": () => void;
"before-enter": () => void;
"before-leave": () => void;
"update:visible": (value: boolean) => void;
}, string, {
readonly disabled: boolean;
readonly width: import('element-plus/es/utils').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
readonly content: string;
readonly offset: number;
readonly visible: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => boolean) | (() => boolean | null) | ((new (...args: any[]) => boolean) | (() => boolean | null))[], unknown, unknown>;
readonly placement: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement) | ((new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement))[], unknown, unknown>;
readonly effect: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect) | ((new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect))[], unknown, unknown>;
readonly showAfter: number;
readonly hideAfter: number;
readonly autoClose: number;
readonly tabindex: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | ((new (...args: any[]) => string | number) | (() => string | number))[], unknown, unknown>;
readonly trigger: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>) | ((new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>))[], unknown, unknown>;
readonly popperOptions: Partial<import('element-plus').Options>;
readonly enterable: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly teleported: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly persistent: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly showArrow: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
beforeCreate?: (() => void) | (() => void)[];
created?: (() => void) | (() => void)[];
beforeMount?: (() => void) | (() => void)[];
mounted?: (() => void) | (() => void)[];
beforeUpdate?: (() => void) | (() => void)[];
updated?: (() => void) | (() => void)[];
activated?: (() => void) | (() => void)[];
deactivated?: (() => void) | (() => void)[];
beforeDestroy?: (() => void) | (() => void)[];
beforeUnmount?: (() => void) | (() => void)[];
destroyed?: (() => void) | (() => void)[];
unmounted?: (() => void) | (() => void)[];
renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
};
$forceUpdate: () => void;
$nextTick: typeof nextTick;
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
} & Readonly<{
readonly disabled: boolean;
readonly width: import('element-plus/es/utils').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
readonly content: string;
readonly offset: number;
readonly visible: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => boolean) | (() => boolean | null) | ((new (...args: any[]) => boolean) | (() => boolean | null))[], unknown, unknown>;
readonly placement: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement) | ((new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement))[], unknown, unknown>;
readonly effect: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect) | ((new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect))[], unknown, unknown>;
readonly showAfter: number;
readonly hideAfter: number;
readonly autoClose: number;
readonly tabindex: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | ((new (...args: any[]) => string | number) | (() => string | number))[], unknown, unknown>;
readonly trigger: import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>) | ((new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>))[], unknown, unknown>;
readonly popperOptions: Partial<import('element-plus').Options>;
readonly enterable: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly teleported: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly persistent: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly showArrow: import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>;
}> & Omit<Readonly<globalThis.ExtractPropTypes<{
readonly trigger: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>) | ((new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils').Arrayable<import('element-plus').TooltipTriggerType>))[], unknown, unknown, "hover", boolean>;
readonly placement: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement) | ((new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import('element-plus').Placement))[], unknown, unknown, "bottom", boolean>;
readonly disabled: BooleanConstructor;
readonly visible: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => boolean) | (() => boolean | null) | ((new (...args: any[]) => boolean) | (() => boolean | null))[], unknown, unknown, null, boolean>;
readonly transition: StringConstructor;
readonly popperOptions: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => Partial<import('element-plus').Options>) | (() => Partial<import('element-plus').Options>) | ((new (...args: any[]) => Partial<import('element-plus').Options>) | (() => Partial<import('element-plus').Options>))[], unknown, unknown, () => {}, boolean>;
readonly tabindex: import('element-plus/es/utils').EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | ((new (...args: any[]) => string | number) | (() => string | number))[], unknown, unknown, 0, boolean>;
readonly content: import('element-plus/es/utils').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly popperStyle: {
readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string | import('vue').CSSProperties | import('vue').StyleValue[]) | (() => import('vue').StyleValue) | ((new (...args: any[]) => string | import('vue').CSSProperties | import('vue').StyleValue[]) | (() => import('vue').StyleValue))[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly popperClass: {
readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | ((new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]))[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly enterable: {
readonly default: true;
readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<BooleanConstructor, unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
readonly __epPropKey: true;
};
readonly effect: {
readonly default: "light";
readonly type: import('vue').PropType<import('element-plus/es/utils').EpPropMergeType<(new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect) | ((new (...args: any[]) => string) | (() => import('element-plus/es/element-plus').PopperEffect))[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
readonly __epPropKey: true;
};
readonly teleported: import('element-plus/es/utils').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly title: StringConstructor;
readonly width: import('element-plus/es/utils').EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 150, boolean>;
readonly offset: import('element-plus/es/utils').EpPropFinalized<NumberConstructor, unknown, unknown, undefined, boolean>;
readonly showAfter: import('element-plus/es/utils').EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
readonly hideAfter: import('element-plus/es/utils').EpPropFinalized<NumberConstructor, unknown, unknown, 200, boolean>;
readonly autoClose: import('element-plus/es/utils').EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
readonly showArrow: import('element-plus/es/utils').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly persistent: import('element-plus/es/utils').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly 'onUpdate:visible': {
readonly type: import('vue').PropType<(visible: boolean) => void>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>> & {
"onUpdate:visible"?: ((value: boolean) => any) | undefined;
"onAfter-enter"?: (() => any) | undefined;
"onAfter-leave"?: (() => any) | undefined;
"onBefore-enter"?: (() => any) | undefined;
"onBefore-leave"?: (() => any) | undefined;
}, "offset" | "visible" | "width" | "showArrow" | "disabled" | "trigger" | "content" | "persistent" | "teleported" | "effect" | "enterable" | "placement" | "popperOptions" | "showAfter" | "hideAfter" | "autoClose" | "popperRef" | "hide" | "tabindex"> & import('vue').ShallowUnwrapRef<{
popperRef: import('vue').ComputedRef<({
$: import('vue').ComponentInternalInstance;
$data: {};
$props: Partial<{
readonly role: import('element-plus/es/utils').EpPropMergeType<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown>;
}> & Omit<Readonly<import('vue').ExtractPropTypes<{
readonly role: import('element-plus/es/utils').EpPropFinalized<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown, "tooltip", boolean>;
}>> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "role">;
$attrs: {
[x: string]: unknown;
};
$refs: {
[x: string]: unknown;
};
$slots: import('vue').Slots;
$root: import('vue').ComponentPublicInstance | null;
$parent: import('vue').ComponentPublicInstance | null;
$emit: (event: string, ...args: any[]) => void;
$el: any;
$options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
readonly role: import('element-plus/es/utils').EpPropFinalized<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown, "tooltip", boolean>;
}>>, {
triggerRef: import('vue').Ref<import('element-plus/es/element-plus').Measurable | undefined>;
contentRef: import('vue').Ref<HTMLElement | undefined>;
popperInstanceRef: import('vue').Ref<import('@popperjs/core').Instance | undefined>;
referenceRef: import('vue').Ref<import('element-plus/es/element-plus').Measurable | undefined>;
role: import('vue').ComputedRef<string>;
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, Record<string, any>, string, {
readonly role: import('element-plus/es/utils').EpPropMergeType<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown>;
}> & {
beforeCreate?: (() => void) | (() => void)[];
created?: (() => void) | (() => void)[];
beforeMount?: (() => void) | (() => void)[];
mounted?: (() => void) | (() => void)[];
beforeUpdate?: (() => void) | (() => void)[];
updated?: (() => void) | (() => void)[];
activated?: (() => void) | (() => void)[];
deactivated?: (() => void) | (() => void)[];
beforeDestroy?: (() => void) | (() => void)[];
beforeUnmount?: (() => void) | (() => void)[];
destroyed?: (() => void) | (() => void)[];
unmounted?: (() => void) | (() => void)[];
renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
};
$forceUpdate: () => void;
$nextTick: typeof import('vue').nextTick;
$watch(source: string | Function, cb: Function, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
} & Readonly<import('vue').ExtractPropTypes<{
readonly role: import('element-plus/es/utils').EpPropFinalized<StringConstructor, "dialog" | "menu" | "grid" | "listbox" | "tooltip" | "tree" | "group" | "navigation", unknown, "tooltip", boolean>;
}>> & import('vue').ShallowUnwrapRef<{
triggerRef: import('vue').Ref<import('element-plus/es/element-plus').Measurable | undefined>;
contentRef: import('vue').Ref<HTMLElement | undefined>;
popperInstanceRef: import('vue').Ref<import('@popperjs/core').Instance | undefined>;
referenceRef: import('vue').Ref<import('element-plus/es/element-plus').Measurable | undefined>;
role: import('vue').ComputedRef<string>;
}> & {} & import('vue').ComponentCustomProperties & {
$slots: {
default?(_: {}): any;
};
}) | undefined>;
hide: () => void;
}> & {} & import('@vue/runtime-core').ComponentCustomProperties & {} & {
$slots: {
reference?(_: {}): any;
default?(_: {}): any;
};
}) | null)[];
};
attrs: Partial<{}>;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<globalThis.ExtractPropTypes<{
popWidth: {
type: NumberConstructor;
default: number;
};
isPop: {
type: BooleanConstructor;
default: boolean;
};
isDia: {
type: BooleanConstructor;
default: boolean;
};
isRadio: {
type: BooleanConstructor;
default: boolean;
};
dateType: {
type: StringConstructor;
default: string;
};
dbOptions: {
type: ObjectConstructor;
default: {};
};
monthValue: {
type: StringConstructor;
default: () => string;
};
yearValue: {
type: StringConstructor;
default: () => string;
};
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
"update:monthValue": (...args: any[]) => void;
"update:yearValue": (...args: any[]) => void;
changeMonth: (...args: any[]) => void;
changeYear: (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<globalThis.ExtractPropTypes<{
popWidth: {
type: NumberConstructor;
default: number;
};
isPop: {
type: BooleanConstructor;
default: boolean;
};
isDia: {
type: BooleanConstructor;
default: boolean;
};
isRadio: {
type: BooleanConstructor;
default: boolean;
};
dateType: {
type: StringConstructor;
default: string;
};
dbOptions: {
type: ObjectConstructor;
default: {};
};
monthValue: {
type: StringConstructor;
default: () => string;
};
yearValue: {
type: StringConstructor;
default: () => string;
};
}>> & Readonly<{
"onUpdate:monthValue"?: ((...args: any[]) => any) | undefined;
"onUpdate:yearValue"?: ((...args: any[]) => any) | undefined;
onChangeMonth?: ((...args: any[]) => any) | undefined;
onChangeYear?: ((...args: any[]) => any) | undefined;
}>, {
dbOptions: Record<string, any>;
popWidth: number;
isPop: boolean;
isDia: boolean;
isRadio: boolean;
dateType: string;
monthValue: string;
yearValue: string;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};