import { Name } from '@wharfkit/antelope';
import { Serializable } from './serializable';
declare enum AccountType {
    PERSON = "PERSON",
    ORG = "ORG",
    APP = "APP",
    GOV = "GOV"
}
declare namespace AccountType {
    function indexFor(value: AccountType): number;
    function from(value: number | string): AccountType;
    function getPreSuffix(value: AccountType): string;
}
export { AccountType };
export declare class TonomyUsername implements Serializable {
    username: string;
    usernameHash: string;
    constructor(username: string);
    static fromUsername(username: string, type: AccountType, suffix: string): TonomyUsername;
    static fromFullUsername(username: string): TonomyUsername;
    getBaseUsername(): string;
    /**
     * @returns the username hash
     */
    toString(): string;
    /**
     * Returns the JSON string representation of the object - which is the username string
     *
     * @description This is used in JSON.stringify(). It is not recommended to use this method directly.
     * Only the username is returned, not the full object. This is all that is needed to reconstruct the
     * full object in the constructor, and thus minimizes the size of the JSON string.
     *
     * @override Serializable.toJSON
     * @returns {string} the username
     */
    toJSON(): string;
}
export declare function checkUsername(account: Name, username?: string, verifyUsername?: boolean): Promise<TonomyUsername | undefined>;
//# sourceMappingURL=username.d.ts.map