import type { TypedFunction } from '../../core/function/typed.js'; /** * JSON representation of a Chain */ export interface ChainJSON { mathjs: 'Chain'; value: unknown; } /** * Chain instance interface */ export interface ChainInstance { type: 'Chain'; isChain: true; value: unknown; done(): unknown; valueOf(): unknown; toString(): string; toJSON(): ChainJSON; [key: string]: unknown; } /** * Chain constructor interface */ export interface ChainConstructor { new (value?: unknown): ChainInstance; fromJSON(json: ChainJSON): ChainInstance; createProxy(arg0: string | Record, arg1?: unknown): void; prototype: ChainInstance; } /** * Import event callback type */ type ImportEventCallback = (name: string, resolver: () => unknown, path: string | undefined) => void; /** * On function interface for event subscription */ interface OnFunction { (event: 'import', callback: ImportEventCallback): void; (event: string, callback: (...args: unknown[]) => void): void; } /** * Math instance interface with dynamic method access */ interface MathInstance { [key: string]: unknown; } /** * Dependencies for Chain factory */ interface ChainDependencies { on?: OnFunction; math: MathInstance; typed: TypedFunction; } export declare const createChainClass: import("../../utils/factory.js").FactoryFunction; export {}; //# sourceMappingURL=Chain.d.ts.map