import { type Operator } from '@cspell/cspell-pipe/sync';
import type { CompileOptions } from './CompileOptions.js';
import type { AllowedSplitWordsCollection } from './WordsCollection.js';
export declare function normalizeTargetWords(options: CompileOptions): Operator<string>;
export interface ParseFileOptions {
    /**
     * Preserve case
     * @default true
     */
    keepCase?: boolean | undefined;
    /**
     * Tell the parser to split into words along spaces.
     * @default false
     */
    split?: boolean | undefined;
    /**
     * When splitting tells the parser to output both the split and non-split versions of the line.
     * @default false
     */
    splitKeepBoth?: boolean | undefined;
    /**
     * Use legacy splitting.
     * @default false
     */
    legacy?: boolean | undefined;
    allowedSplitWords: AllowedSplitWordsCollection;
    /**
     * Words that have been split using the `allowedSplitWords` are added to the dictionary as compoundable words.
     * These words are prefixed / suffixed with `*`.
     * @default undefined
     */
    storeSplitWordsAsCompounds: boolean | undefined;
    /**
     * Controls the minimum length of a compound word when storing words using `storeSplitWordsAsCompounds`.
     * The compound words are prefixed / suffixed with `*`, to allow them to be combined with other compound words.
     * If the length is too low, then the dictionary will consider many misspelled words as correct.
     * @default 4
     */
    minCompoundLength: number | undefined;
}
type ParseFileOptionsRequired = Required<ParseFileOptions>;
export declare const defaultParseDictionaryOptions: ParseFileOptionsRequired;
export declare const cSpellToolDirective = "cspell-tools:";
export declare const setOfCSpellDirectiveFlags: string[];
/**
 * Normalizes a dictionary words based upon prefix / suffixes.
 * Case insensitive versions are also generated.
 * @param options - defines prefixes used when parsing lines.
 * @returns words that have been normalized.
 */
export declare function createParseFileLineMapper(options?: Partial<ParseFileOptions>): Operator<string>;
/**
 * Normalizes a dictionary words based upon prefix / suffixes.
 * Case insensitive versions are also generated.
 * @param lines - one word per line
 * @param _options - defines prefixes used when parsing lines.
 * @returns words that have been normalized.
 */
export declare function parseFileLines(lines: Iterable<string> | string, options: ParseFileOptions): Iterable<string>;
export {};
//# sourceMappingURL=wordListParser.d.ts.map