import type { DiscordAdaptor, Snowflake } from "../adaptor"; import type { Logger } from "../util/logger"; export type HookContext = { index: number; hookValues: { value: unknown; hookType: string; index: number; }[]; renderIndex: number; mountHooks: ((messageId: Snowflake) => void)[]; unmountHooks: (() => void)[]; adaptor: DiscordAdaptor; dispatch: () => void; logger: Logger; }; export declare const getHookContext: () => HookContext; export type HookCycle = { startRender: () => number; endRender: () => void; callEffectHooks: (messageId: Snowflake) => void; callRemoveEffectHooks: () => void; context: HookContext; }; export declare const createHookCycle: (adaptor: DiscordAdaptor, logger: Logger, dispatch: () => void) => HookCycle; export declare const takeIndex: (ctx: HookContext) => number; export declare const isInitial: (ctx: HookContext, index: number) => boolean; export declare const stockHookValue: (hookType: string) => (ctx: HookContext, index: number, value: unknown) => void; export declare const takeValue: (ctx: HookContext, index: number) => T; export declare const isDepsChanged: (prevDeps: readonly unknown[] | undefined, deps: readonly unknown[] | undefined) => boolean; export declare const assertHookValue: (hookType: string) => (ctx: HookContext, current: number) => void; //# sourceMappingURL=hookContext.d.ts.map