import { EmitFnToEmits, ExposedToProps, NodeChild, SlotsToProps } from "./types.js"; import * as Vue from "vue"; import { Block, ComponentObjectPropsOptions, ComponentTypeEmits, DefineVaporComponent, DefineVaporSetupFnComponent, EffectScope, EmitFn, EmitsOptions, ExtractPropTypes, Fragment, ShallowRef, VaporComponent, VaporComponentOptions, VaporRenderResult, VaporSlot } from "vue"; //#region src/vapor.d.ts export declare function defineVaporSSRComponent(comp: VaporComponent, extraOptions: VaporComponent): VaporComponent; type Tail = T extends [any, ...infer R] ? R : never; export declare const createComponent: (type: VaporComponent | typeof Fragment | string, ...args: Tail>) => Block; export declare function createProxyComponent(type: VaporComponent, normalizeNode?: (node: any) => Block): any; export declare function normalizeNode(node: NodeChild): Block; export declare function isBlock(val: NonNullable): val is Block; export declare function setNodes(anchor: Node, ...values: any[]): void; export declare function createNodes(...values: any[]): Block[]; export declare function normalizeVaporSlots(slots: any): { name: string; fn: unknown; }[] | { name: string; fn: any; }; type SlotsType$1 = Record; export declare function defineVaporComponent, Emits extends EmitsOptions = {}, RuntimeEmitsKeys extends string = string, Slots extends SlotsType$1 = SlotsType$1, Exposed extends Record = Record, TypeBlock extends Block = Block, Emit = EmitFn>(setup: (this: void, props: Props, ctx: { emit: Emit; slots: Slots; attrs: Record; expose: (exposed?: Exposed) => void; }) => VaporRenderResult | void, extraOptions?: VaporComponentOptions<(keyof NoInfer)[], Emits, RuntimeEmitsKeys, Slots, Exposed> & ThisType): DefineVaporSetupFnComponent & SlotsToProps, [keyof Emits] extends [never] ? EmitFnToEmits : Emits, Slots, Exposed, TypeBlock>; export declare function defineVaporComponent, Emits extends EmitsOptions = {}, RuntimeEmitsKeys extends string = string, Slots extends SlotsType$1 = SlotsType$1, Exposed extends Record = Record, TypeBlock extends Block = Block, Emit = EmitFn>(this: void, setup: (props: Props, ctx: { emit: Emit; slots: Slots; attrs: Record; expose: (exposed?: Exposed) => void; }) => VaporRenderResult | void, extraOptions?: VaporComponentOptions, Emits, RuntimeEmitsKeys, Slots, Exposed> & ThisType): DefineVaporSetupFnComponent & ExposedToProps, [keyof Emits] extends [never] ? EmitFnToEmits : Emits, Slots, Exposed, TypeBlock>; export declare function defineVaporComponent = Record, ResolvedEmits extends EmitsOptions = {} extends RuntimeEmitsOptions ? EmitFnToEmits> : RuntimeEmitsOptions, InferredProps = unknown extends TypeProps ? string extends RuntimePropsKeys ? ComponentObjectPropsOptions extends RuntimePropsOptions ? {} : ExtractPropTypes : { [key in RuntimePropsKeys]?: any; } : TypeProps, TypeRefs extends Record = {}, TypeBlock extends Block = Block>(options: VaporComponentOptions & { [key: string]: any; } & ThisType): DefineVaporComponent : Exposed, TypeBlock, TypeRefs, unknown extends TypeProps ? true : false>; type VaporForSlots = { default: (...args: string extends keyof Item ? [item: GetKey extends undefined ? T[keyof T] : ShallowRef, key: ShallowRef, index: ShallowRef] : [item: GetKey extends undefined ? Item : ShallowRef, index: ShallowRef]) => any; }; export declare function VaporFor | number | string | Set | Map, Item = T extends number ? number : T extends string ? string : T extends any[] ? T[number] : T extends Iterable ? T1 : Record, GetKeyDefault = (...args: string extends keyof Item ? [item: T[keyof T], key: keyof T, index: number] : [item: Item, index: number]) => any, GetKey extends GetKeyDefault | null | undefined = undefined>(props: { in: T; getKey?: GetKey extends undefined ? GetKeyDefault : GetKey; } & SlotsToProps>, { slots }: { slots: VaporForSlots; }): { resetListeners?: (() => void)[]; onReset(fn: () => void): void; $key?: any; $transition?: Vue.VaporTransitionHooks | undefined; nodes: Block[]; vnode?: Vue.VNode | null; anchor?: Node; isBlockValid?: (componentAsValid?: boolean) => boolean; insert?(parent: ParentNode, anchor: Node | null, parentSuspense?: Vue.SuspenseBoundary | null, transitionHooks?: Vue.TransitionHooks): void; move?(parent: ParentNode, anchor: Node | null, moveType: Vue.MoveType, parentComponent?: Vue.VaporComponentInstance, parentSuspense?: Vue.SuspenseBoundary | null, transitionHooks?: Vue.TransitionHooks): void; remove?(parent?: ParentNode, transitionHooks?: Vue.TransitionHooks): void; hydrate?(...args: any[]): void; scope?: EffectScope; setRef?: (instance: Vue.VaporComponentInstance, ref: string | Vue.Ref | ((ref: Element | Vue.VaporComponentInstance, refs: Record) => void), refFor: boolean, refKey: string | undefined) => void; bm?: ((nodes: Block) => void)[]; bum?: (() => void)[]; bu?: (() => void)[]; u?: ((nodes: Block) => void)[]; }; export declare namespace VaporFor { var __vapor: boolean; } //#endregion