import { Equality } from './types'; /** Deps can be a single value or an array of values */ export type TriggerDeps = unknown | unknown[]; /** Options for trigger */ export interface TriggerOptions { /** Dependencies to check (default: [] - run once) */ deps?: TriggerDeps; /** Scope key (default: DEFAULT_KEY - global) */ key?: unknown; /** Custom equality function for deps comparison */ equality?: Equality; } /** * Trigger a function when dependencies change. * * @overload With options object * @overload With deps (single value or array) * @overload With key (scoped) * * @example * ```ts * // With single dep value (shorthand) * trigger(fetchUser, userId, userId) * * // With deps array * trigger(fetchUser, [userId, page], userId, page) * * // With options object * trigger(reset, { key: id }) * trigger(fn, { deps: [x], equality: deepEqual }, arg) * * // With key (scoped, shorthand) * trigger(id, reset, []) * trigger(id, fetchData, userId, userId) * ``` */ export declare function trigger(fn: (...args: TArgs) => TResult, options?: TriggerOptions, ...args: TArgs): TResult; export declare function trigger(fn: (...args: TArgs) => TResult, deps: TriggerDeps, ...args: TArgs): TResult; export declare function trigger(key: unknown, fn: (...args: TArgs) => TResult, deps: TriggerDeps, ...args: TArgs): TResult; export declare namespace trigger { var clear: (key: unknown) => void; var clearAll: () => void; } //# sourceMappingURL=trigger.d.ts.map