import { Tensor } from '@tensorflow/tfjs-core';
import { Conversation, ITokeniser } from '../tokeniser/type';
import { Dataset } from '@tensorflow/tfjs-data';
import { Task } from './tasks/Task';
export declare function buildSFTExample(conversation: Conversation[], ignoreIndex: number, tokenizer: ITokeniser, blockSize: number): {
    xs: Int32Array;
    ys: Int32Array;
} | null;
export declare class SFTDatasetBuilder {
    tokenizer: ITokeniser;
    blockSize: number;
    constructor(tokenizer: ITokeniser, blockSize?: number);
    /**
     * Create SFT dataset from structured conversations.
     * - Always starts from the beginning of each conversation.
     * - Pads with eosToken and masks padding.
     * - Masks non-assistant tokens in labels with ignoreIndex (default -100).
     */
    createSFTDataset(conversations: Task[], batchSize?: number, ignoreIndex?: number): Promise<Dataset<{
        xs: Tensor;
        ys: Tensor;
    }>>;
}
