import type { DefineComponent, TransitionProps, VNode, SetupContext } from 'vue'; export interface TemplatePromiseOptions { transition?: TransitionProps; destroy?: boolean; render?: (props: any, ctx: SetupContext) => VNode; class?: string; } export type TemplatePromise = DefineComponent & {} & { open: (...args: Args) => Promise; }; export interface TemplatePromiseProps { promise: Promise | undefined; resolve: (v: Return) => void; reject: (v: any) => void; args: Args; options: TemplatePromiseOptions; isResolving: boolean; isVisible: boolean; key: number; } export declare const useTemplatePromise: (options?: TemplatePromiseOptions) => TemplatePromise;