import type { TypeInfo } from '@getlang/ast'; import type { Inputs, MaybePromise } from '../index.js'; export type ImportHook = (module: string) => MaybePromise; export type CallHook = (module: string, inputs: Inputs) => MaybePromise; export type RequestHook = (url: string, opts: RequestInit) => MaybePromise; export type SliceHook = (slice: string, context?: unknown) => MaybePromise; export type ExtractHook = (module: string, inputs: Inputs, value: any) => MaybePromise; export type Modifier = (context: any, options: Record) => any; export type ModifierHook = (modifier: string) => MaybePromise<{ modifier: Modifier; useContext?: boolean; materialize?: boolean; returnType?: TypeInfo; } | undefined>; export type Hooks = Partial<{ import: ImportHook; request: RequestHook; slice: SliceHook; call: CallHook; extract: ExtractHook; modifier: ModifierHook; }>; type RequestInit = { method?: string; headers?: Headers; body?: string; }; export type Response = { status: number; headers: Headers; body?: string; }; export declare function buildHooks(hooks: Hooks): Required; export {};