import * as tokenizer from '../tokenizer.js';
import { splitWords } from './word.js';
interface TokenizerOptions {
    language: string;
    /**
     * Minimum length for a span to be treated as its own sentence; shorter spans are merged
     * forward into the next one.
     */
    minSentenceLength: number;
    /** Minimum buffered text before the stream emits. */
    streamContextLength: number;
    /** Keep original whitespace/formatting in emitted tokens. */
    retainFormat: boolean;
    /**
     * Hard cap on emitted token length; a token is flushed before appending a sentence that
     * would exceed it. Unlimited when omitted.
     */
    maxTokenLength?: number;
    /**
     * Minimum length a token must reach before it is emitted. Sentences are batched together
     * until the running token reaches this length, so raising it (e.g. toward
     * `maxTokenLength`) yields larger, fewer chunks. Defaults to `minSentenceLength`
     * (per-sentence emission).
     */
    minTokenLength?: number;
    /**
     * Minimum length for the *first* token of each segment, when it should differ from
     * `minTokenLength`. Lets a batching consumer still emit its opening chunk as soon as one
     * sentence is ready, so batching costs nothing at the head of a segment.
     */
    firstTokenLength?: number;
    /**
     * Treat XML markup as atomic — never split a tag across tokens and keep tags attached to
     * the following sentence. Only enable when the input actually carries markup (e.g.
     * expressive TTS): a stray "<" in plain text can otherwise hold back streaming until
     * flush.
     */
    xmlAware?: boolean;
}
export declare class SentenceTokenizer extends tokenizer.SentenceTokenizer {
    #private;
    constructor(options?: Partial<TokenizerOptions>);
    tokenize(text: string, language?: string): string[];
    stream(language?: string): tokenizer.SentenceStream;
}
export declare class WordTokenizer extends tokenizer.WordTokenizer {
    #private;
    constructor(ignorePunctuation?: boolean);
    tokenize(text: string, language?: string): string[];
    stream(language?: string): tokenizer.WordStream;
}
export declare const hyphenateWord: (word: string) => string[];
export { splitWords };
export declare const tokenizeParagraphs: (text: string) => string[];
//# sourceMappingURL=basic.d.ts.map