import { Secret, EncryptedState } from '../../../Secret';
import { Seed } from '../SeedWallet/Seed';
/** Supported mnemonic languages. */
export type PhraseLanguage = 'czech' | 'english' | 'french' | 'italian' | 'japanese' | 'korean' | 'portuguese' | 'simplifiedChinese' | 'spanish' | 'traditionalChinese';
/** Valid mnemonic word counts. More words = stronger security. */
export type PhraseNumOfWords = 12 | 15 | 18 | 21 | 24;
/**
 * A mnemonic phrase (e.g. 12 or 24 words). Supports encryption and multi-language mnemonics.
 *
 * @example
 * ```ts
 * const phrase = Phrase.new('english', 12);
 * const phrase = new Phrase('abandon abandon ... about');
 * ```
 */
export declare class Phrase extends Secret {
    /**
     * @param phrase - A mnemonic string or {@link EncryptedState}.
     * @throws {@link InvalidPhraseError} if the mnemonic is invalid.
     */
    constructor(phrase: string | EncryptedState);
    private get phrase();
    /** The mnemonic as raw bytes. */
    get raw(): Uint8Array;
    /** The mnemonic as hex. */
    get hex(): string;
    /** The individual words of the mnemonic phrase. */
    get words(): string[];
    /** Converts this mnemonic to a {@link Seed}. */
    getSeed(): Seed;
    /**
     * Generates a new random mnemonic phrase.
     *
     * @param language - Wordlist language. Defaults to `'english'`.
     * @param numberOfWords - Number of words. Defaults to `12`.
     */
    static new(language?: PhraseLanguage, numberOfWords?: PhraseNumOfWords): Phrase;
    /**
     * Checks whether a string is a valid mnemonic phrase (any supported language).
     *
     * @param phrase - The string to validate.
     */
    static isValid(phrase: string): boolean;
    private static validate;
}
