import * as z from 'zod'; import { type RawUserId } from '../../schemas/satellite'; /** * @see HookContext */ export declare const HookContextSchema: (dataSchema: T) => z.ZodObject<{ caller: z.ZodCustom, Uint8Array>; data: T; }, z.core.$strict>; /** * Represents the context provided to hooks, containing information about the caller and related data. * * @template T - The type of data associated with the hook. */ export interface HookContext { /** * The user who originally triggered the function that in turn triggered the hook. */ caller: RawUserId; /** * The data associated with the hook execution. */ data: T; } /** * @see AssertFunction */ export declare const AssertFunctionSchema: (contextSchema: T) => z.ZodCustom, z.ZodVoid>, z.core.$InferInnerFunctionType, z.ZodVoid>>; /** * Defines the `assert` function schema for assertions. * * The function takes a context argument and returns `void`. * * @template T - The type of context passed to the function. */ export type AssertFunction = (context: T) => void; /** * @see RunFunction */ export declare const RunFunctionSchema: (contextSchema: T) => z.ZodCustom, z.ZodUnion<[z.ZodPromise, z.ZodVoid]>>, z.core.$InferInnerFunctionType, z.ZodUnion<[z.ZodPromise, z.ZodVoid]>>>; /** * Defines the `run` function schema for hooks. * * The function takes a context argument and returns either a `Promise` or `void`. * * @template T - The type of context passed to the function. */ export type RunFunction = (context: T) => void | Promise;