/**
* evermind_video.ts — thin bridge that makes the EXISTING EvermindLM generate
* video. No new model, no new generator: the codec turns frames into tokens, the
* unqualified `EvermindLM.generate` autoregresses over them, and the codec turns
* the emitted tokens back into frames. Deliberately DRY — everything the text
* path already has (sampling, checkpoints, delta export, training) is reused.
*/
import type { EvermindLM, LMGenerateOptions } from "../lm/evermind_lm.js";
import type { VideoRVQCodec, Video, Frame } from "./video_rvq.js";
import type { ImageRVQCodec } from "./image_rvq.js";
/**
* Build a unified training sequence `text… frames… ` for
* `EvermindLMTrainer.fit`. `textTokens` are ids in the codec's text region (from
* a BPE tokenizer whose vocab size equals `codec.vocab.textVocabSize`). Training
* the LM on many such sequences is what teaches text→video.
*/
export declare function buildVideoSequence(codec: VideoRVQCodec, textTokens: number[], video: Video): number[];
/**
* Generate video from a prompt of already-tokenised context (text ids and/or a
* partial video stream). The prompt should normally end just before or at the
* `` marker; generation stops at `` or after `maxNewTokens`.
*
* Returns the decoded clip plus the raw produced token ids (useful for chaining
* or continued generation).
*/
export declare function generateVideo(lm: EvermindLM, codec: VideoRVQCodec, promptTokens: number[], opts: LMGenerateOptions): {
video: Video;
tokens: number[];
};
/** Generate a single image — the still-image case of {@link generateVideo}. */
export declare function generateImage(lm: EvermindLM, codec: ImageRVQCodec, promptTokens: number[], opts: LMGenerateOptions): {
image: Frame;
tokens: number[];
};
//# sourceMappingURL=evermind_video.d.ts.map