import Web3 from 'web3';
import { SystemReserve } from '../../web3-contracts/SystemReserve';
import { SystemContractInstance } from '../SystemContractInstance';
import { TransactionReceipt } from 'web3-eth';
import { QNonPayableTx } from '../../types';
/**
 * System reserve instance to interact with System reserve contract.
 * See [onchain documentation](@system-contracts-repo/@network/SystemReserve/) for more details.
 * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.systemReserve}
 */
export declare class SystemReserveInstance extends SystemContractInstance<SystemReserve> {
    static readonly registryKey = "tokeneconomics.systemReserve";
    constructor(web3: Web3, address: string);
    /**
     * [External documentation](@system-contracts-repo/@network/SystemReserve/#cooldownphase)
     */
    coolDownPhase(): Promise<string>;
    /**
     * [External documentation](@system-contracts-repo/@network/SystemReserve/#systempaused)
     */
    systemPaused(): Promise<boolean>;
    /**
     * [External documentation](@system-contracts-repo/@network/SystemReserve/#availableamount)
     */
    availableAmount(): Promise<string>;
    /**
     * [External documentation](@system-contracts-repo/@network/SystemReserve/#setpausestate)
     */
    setPauseState(state: boolean, txOptions?: QNonPayableTx): Promise<TransactionReceipt>;
    /**
     * [External documentation](@system-contracts-repo/@network/SystemReserve/#withdraw)
     */
    withdraw(amount: string | number, txOptions?: QNonPayableTx): Promise<TransactionReceipt>;
    /**
     * [External documentation](@system-contracts-repo/@network/SystemReserve/#geteligiblecontractkeys)
     */
    getEligibleContractKeys(): Promise<string[]>;
}
