import { Config } from './config.js'; import { NameIndex } from './utils.js'; import { FullName, Mononym } from './fullname.js'; import { Name, JsonName } from './name.js'; /** * A parser signature that helps to organize the names accordingly. */ export declare abstract class Parser { raw: T; /** * Constructs a custom parser accordingly. * @param raw data to be parsed */ constructor(raw: T); /** * Parses raw data into a `FullName` while applying some options. * @param options for additional configuration to apply. */ abstract parse(options?: Partial): FullName; /** * Builds a dynamic `Parser` on the fly and throws a `NameError` when unable * to do so. The built parser only knows how to operate birth names. */ static build(text: string, index?: NameIndex): Parser; /** Builds asynchronously a dynamic `Parser`. */ static buildAsync(text: string, index?: NameIndex): Promise; } export declare class StringParser extends Parser { parse(options: Partial): FullName; } export declare class ArrayStringParser extends Parser { parse(options: Partial): FullName; } export declare class NamaParser extends Parser { parse(options: Partial): FullName; } export declare class ArrayNameParser extends Parser { parse(options: Partial): FullName; } export declare class MonoParser extends Parser { parse(options: Partial): Mononym; }