import { Char, IName } from "hangulx";
import { IJamoDictionary } from "./interfaces";
import { Format } from "./constants";
import { CompleteMap } from "./types";
export declare class Romanize {
    private static DEFAULT_JAMO_ROMANIZATION_DICTIONARY;
    private static extractJamoMeta;
    private static getJamoRomanizationCandidates;
    private static candidatesFromChar;
    static candidatesFrom(str: Char, option?: Romanize.CandidatesFromOption): string[];
    static from(str: string, option?: Romanize.FromOption): string;
    static fromName(fullName: string, option?: Romanize.CandidatesFromNameOption): IName | null;
    static fromName(name: IName, option?: Romanize.CandidatesFromNameOption): IName | null;
    static fromName(surname: string, givenName: string, option?: Romanize.CandidatesFromNameOption): IName | null;
    static toGroup(str: string, option?: Romanize.ToGroupOption): string[];
    static candidatesFromName(fullName: string, option?: Romanize.CandidatesFromNameOption): IName[];
    static candidatesFromName(name: IName, option?: Romanize.CandidatesFromNameOption): IName[];
    static candidatesFromName(surname: string, givenName: string, option?: Romanize.CandidatesFromNameOption): IName[];
}
export declare namespace Romanize {
    interface SeparatorOption {
        separator?: string | undefined;
    }
    interface DictionaryOption {
        jamoDictionary?: Map<string, IJamoDictionary> | null;
    }
    interface FormatOption {
        format?: Format;
    }
    interface CompleteMapOption {
        completeMap?: CompleteMap;
    }
    interface JamoRomanizationJamoCandidatesOption extends DictionaryOption {
    }
    interface CandidatesFromCharOption extends DictionaryOption, FormatOption, CompleteMapOption {
    }
    interface CandidatesFromOption extends DictionaryOption, SeparatorOption, FormatOption, CompleteMapOption {
    }
    interface CandidatesFromNameOption extends DictionaryOption, FormatOption, CompleteMapOption {
        givenNameSeparator?: SeparatorOption['separator'];
        surnameCompleteMap?: CompleteMap;
        givenNameCompleteMap?: CompleteMap;
    }
    interface FromOption extends CandidatesFromOption {
    }
    interface ToGroupOption extends Omit<CandidatesFromCharOption, 'separator'> {
    }
}
