import { API, Name, NameType } from '@wharfkit/antelope';
import { Authority } from '../eosio/authority';
import { Signer } from '../eosio/transaction';
export declare class EosioContract {
    static singletonInstance: EosioContract;
    contractName: string;
    static get Instance(): EosioContract;
    constructor(contractName?: string);
    /**
     * Deploys a contract at the specified address
     *
     * @param account - Account where the contract will be deployed
     * @param wasmFileContents - wasmFile after reading with fs.readFileSync(path) or equivalent
     * @param abiFileContents - abiFile after reading with fs.readFileSync(path, `utf8`) or equivalent
     * @param signer - Signer to sign the transaction
     * @param [extraAuthorization] - Extra authorization to be added to the transaction
     */
    deployContract(account: Name, wasmFileContent: any, abiFileContent: any, signer: Signer, options?: {
        extraAuthorization?: {
            actor: string;
            permission: string;
        };
    }): Promise<API.v1.PushTransactionResponse>;
    updateauth(account: string, permission: string, parent: string, auth: Authority, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    newaccount(creator: NameType, name: NameType, owner: Authority, active: Authority, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    /**
     * @param account - the permission's owner to be linked and the payer of the RAM needed to store this link,
     * @param code - the owner of the action to be linked,
     * @param type - the action to be linked,
     * @param requirement - the permission to be linked.
     */
    linkAuth(account: string, code: string, type: string, requirement: string, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    setPriv(account: string, isPriv: number, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    setParams(blockchainParameters: BlockchainParams | undefined, signer: Signer): Promise<API.v1.PushTransactionResponse>;
}
export interface BlockchainParams {
    max_block_net_usage: number;
    target_block_net_usage_pct: number;
    max_transaction_net_usage: number;
    base_per_transaction_net_usage: number;
    net_usage_leeway: number;
    context_free_discount_net_usage_num: number;
    context_free_discount_net_usage_den: number;
    max_block_cpu_usage: number;
    target_block_cpu_usage_pct: number;
    max_transaction_cpu_usage: number;
    min_transaction_cpu_usage: number;
    max_transaction_lifetime: number;
    deferred_trx_expiration_window: number;
    max_transaction_delay: number;
    max_inline_action_size: number;
    max_inline_action_depth: number;
    max_authority_depth: number;
}
export declare const defaultBlockchainParams: BlockchainParams;
//# sourceMappingURL=EosioContract.d.ts.map