@tresjs/core
Version:
Declarative ThreeJS using Vue Components
18 lines (17 loc) • 682 B
TypeScript
import { EventHookOff, IsAny } from '@vueuse/core';
export type Callback<T> = IsAny<T> extends true ? (param: any) => void : ([
T
] extends [void] ? () => void : (param: T) => void);
export type PriorityEventHookOn<T> = (fn: Callback<T>, priority?: number) => {
off: () => void;
};
export type PriorityEventHookOff<T> = EventHookOff<T>;
export type PriorityEventHookTrigger<T = any> = (param?: T) => void;
export interface PriorityEventHook<T = any> {
on: PriorityEventHookOn<T>;
off: EventHookOff<T>;
trigger: PriorityEventHookTrigger<T>;
dispose: () => void;
count: number;
}
export declare function createPriorityEventHook<T>(): PriorityEventHook<T>;