declare type EnvironmentOptions = {
    lazy?: boolean;
    irish?: boolean;
    spanish?: boolean;
    roman?: boolean;
    hebrew?: boolean;
    postnominal?: boolean;
};
declare class Environment {
    private EXCEPTIONS;
    private REPLACEMENTS;
    private HEBREW;
    private CONJUNCTIONS;
    private ROMAN_REGEX;
    private POST_NOMINALS;
    private postNominalsExcluded;
    private options;
    private bckOptions;
    constructor(options: EnvironmentOptions);
    /**
     * Global options setter.
     *
     * @param options
     */
    setOptions(options: EnvironmentOptions): void;
    backupOptions(): void;
    restoreOptions(): void;
    /**
     * Global post-nominals exclusions setter.
     *
     * @param values
     * @returns boolean
     */
    excludePostNominals(values: string | string[]): void;
    /**
     * Main function for NameCase.
     *
     * @param name
     * @param options
     *
     * @returns string
     */
    nameCase(name: string, options?: EnvironmentOptions): string;
    private processOptions;
    /**
     * Capitalize first letters.
     *
     * @param name
     *
     * @returns string
     */
    private capitalizeFirstLetters;
    private lowercaseFinalS;
    /**
     * Define required replacements.
     *
     * @return array
     */
    private getReplacements;
    /**
     * Update for Irish names.
     *
     * @param name
     *
     * @returns string
     */
    private updateIrish;
    /**
     * Updates irish Mac & Mc.
     *
     * @param name
     *
     * @returns string
     */
    private updateMac;
    /**
     * Fix roman numeral names.
     *
     * @param name
     *
     * @returns string
     */
    private updateRoman;
    /**
     * Fix Spanish rules.
     *
     * @param name
     *
     * @returns string
     */
    private updateSpanish;
    /**
     * Fix post-nominal letter cases.
     *
     * @param name
     * @returns string
     */
    private fixPostNominal;
    /**
     * Skip if string is mixed case.
     *
     * @param name
     *
     * @returns bool
     */
    private skipMixed;
}
export declare const setOptions: (options: EnvironmentOptions) => void;
export declare const excludePostNominals: (values: string | string[]) => void;
export declare const nameCase: (name: string, options?: EnvironmentOptions) => string;
export default Environment;
