import { API, Checksum256, Checksum256Type, Name, NameType, PublicKey } from '@wharfkit/antelope';
import { Signer } from '../eosio/transaction';
import { TonomyUsername } from '../../../util';
export declare const GOVERNANCE_ACCOUNT_NAME = "tonomy";
export declare enum AccountTypeEnum {
    Person = 0,
    Organization = 1,
    App = 2,
    Gov = 3,
    Service = 4
}
export type GetPersonResponse = {
    account_name: Name;
    status: number;
    username_hash: Checksum256;
    password_salt: Checksum256;
    version: number;
};
type AppTableRecord = {
    account_name: Name;
    app_name: string;
    username_hash: Checksum256;
    description: string;
    logo_url: string;
    origin: string;
    version: number;
};
export declare const RAM_PRICE: number;
export declare const RAM_FEE: number;
export declare const TOTAL_RAM_AVAILABLE: number;
/**
 * Converts bytes to tokens.
 *
 * @param bytes The number of bytes to convert.
 * @returns The converted value in tokens.
 */
export declare function bytesToTokens(bytes: number): string;
export declare class TonomyContract {
    static singletonInstance: TonomyContract;
    static get Instance(): TonomyContract;
    /**
     * Buys RAM for an account
     *
     * @param  daoOwner - The owner of the DAO (Name is assumed to be a class that represents an EOSIO account name)
     * @param account - The name of the app buying RAM (Name is assumed to be a class that represents an EOSIO account name)
     * @param quant - The quantity of RAM to buy (Asset is assumed to be a class that represents an EOSIO asset)
     */
    buyRam(dao_owner: string, app: string, quant: string, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    /**
     * Sets the resource parameters
     *
     * @param ram_price - The price of RAM (bytes per token)
     * @param total_ram_available - The total available RAM.
     * @param ram_fee - The fee for RAM.
    
     */
    setResourceParams(ram_price: number, total_ram_available: number, ram_fee: number, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    newperson(username_hash: string, password_key: string, password_salt: string, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    updatekeysper(account: string, keys: {
        BIOMETRIC?: string;
        PIN?: string;
        LOCAL?: string;
    }, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    newapp(app_name: string, description: string, username_hash: string, logo_url: string, origin: string, key: PublicKey, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    loginwithapp(account: string, app: string, parent: string, key: PublicKey, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    getPerson(account: TonomyUsername | Name): Promise<GetPersonResponse>;
    getApp(account: TonomyUsername | Name | string): Promise<AppTableRecord>;
    adminSetApp(accountName: NameType, appName: string, description: string, usernameHash: Checksum256Type, logoUrl: string, origin: string, signer: Signer): Promise<API.v1.PushTransactionResponse>;
}
export declare function getAccountNameFromUsername(username: TonomyUsername): Promise<Name>;
export {};
//# sourceMappingURL=TonomyContract.d.ts.map