import { Contract, ResultOfCall } from 'jton';
import { KeyPair } from '@tonclient/core/dist/modules';
import { ResultOfProcessMessage, TonClient } from '@tonclient/core';
import RootTokenContractContract from './source/build/RootTokenContract';
export { RootTokenContractContract };
export interface InitialData {
    _randomNonce: number | string;
    name: string;
    symbol: string;
    decimals: number | string;
    wallet_code: string;
}
export interface DeployIn {
    root_public_key_: number | string;
    root_owner_address_: string;
}
export interface GetDetailsOut {
    name: string;
    symbol: string;
    decimals: string;
    root_public_key: string;
    root_owner_address: string;
    total_supply: string;
}
export interface GetWalletAddressIn {
    wallet_public_key_: string;
    owner_address_: string;
}
export interface DeployWalletIn {
    tokens: number | string;
    deploy_grams: number | string;
    wallet_public_key_: string;
    owner_address_: string;
    gas_back_address: string;
}
export interface DeployWalletResult extends ResultOfCall {
    out: DeployWalletOut;
}
export interface DeployWalletOut {
    value0: string;
}
export interface MintIn {
    tokens: number | string;
    to: string;
}
export interface SetPausedIn {
    value: boolean;
}
export interface TransferOwnerIn {
    root_public_key_: number | string;
    root_owner_address_: string;
}
export declare class RootTokenContract extends Contract {
    static readonly EXTERNAL: {
        getVersion: string;
        getDetails: string;
        getTotalSupply: string;
        getWalletCode: string;
        getWalletAddress: string;
        sendExpectedWalletAddress: string;
        deployWallet: string;
        deployEmptyWallet: string;
        mint: string;
        proxyBurn: string;
        tokensBurned: string;
        sendSurplusGas: string;
        setPaused: string;
        sendPausedCallbackTo: string;
        transferOwner: string;
    };
    constructor(client: TonClient, keys: KeyPair, initialData: InitialData, timeout?: number);
    /**********
     * DEPLOY *
     **********/
    deploy(input: DeployIn, timeout?: number): Promise<ResultOfProcessMessage>;
    /**********
     * PUBLIC *
     **********/
    deployWallet(input: DeployWalletIn, keys?: KeyPair): Promise<DeployWalletResult>;
    mint(input: MintIn, keys?: KeyPair): Promise<ResultOfCall>;
    setPaused(input: SetPausedIn, keys?: KeyPair): Promise<ResultOfCall>;
    transferOwner(input: TransferOwnerIn, keys?: KeyPair): Promise<ResultOfCall>;
    /***********
     * GETTERS *
     ***********/
    getVersion(): Promise<string>;
    getDetails(): Promise<GetDetailsOut>;
    getTotalSupply(): Promise<string>;
    getWalletCode(): Promise<string>;
    getWalletAddress(input: GetWalletAddressIn): Promise<string>;
}
//# sourceMappingURL=RootTokenContract.d.ts.map