/** The small surface used from the separately vendored transformers.js runtime. * This is a type boundary, not a second runtime dependency or implementation. */ export interface Tensor { dims: number[]; } export interface Tokenizer { (text: string): { input_ids: Tensor; attention_mask: Tensor }; encode(text: string): number[]; decode(ids: number[], options: { skip_special_tokens: boolean }): string; } export interface Progress { status: string; file: string; loaded: number; total: number; } export interface Stopper { _call(ids: (number | bigint)[][]): boolean[]; } export interface Model { generate(options: { input_ids: Tensor; attention_mask: Tensor; max_new_tokens: number; do_sample: boolean; temperature?: number; top_k?: number; top_p?: number; stopping_criteria?: Stopper[]; streamer?: object; }): Promise; } export interface Transformers { env: { allowRemoteModels: boolean; allowLocalModels: boolean; remoteHost: string; remotePathTemplate: string; useBrowserCache: boolean; backends: { onnx: { wasm: { numThreads: number; wasmPaths: string }; logLevel: string } }; }; AutoTokenizer: { from_pretrained( id: string, options: { progress_callback: (p: Progress) => void }, ): Promise; }; AutoModelForCausalLM: { from_pretrained( id: string, options: { device: string; dtype: string; progress_callback: (p: Progress) => void; session_options: { extra: { session: { disable_quant_qdq: string; disable_prepacking: string } }; }; }, ): Promise; }; StoppingCriteria: new () => Stopper; TextStreamer: new ( tokenizer: Tokenizer, options: { skip_prompt: boolean; callback_function: () => void }, ) => object; }