/// <reference types="chai" />
/// <reference types="sinon-chai" />
declare namespace Chai {
    interface Assertion extends LanguageChains, NumericComparison, TypeComparison {
        reverted: AsyncAssertion;
        revertedWith(reason: string | RegExp): RevertedWithAssertion;
        emit(contractOrEventSig: any, eventName?: string): EmitAssertion;
        properHex(length: number): void;
        hexEqual(other: string): void;
        properPrivateKey: void;
        properAddress: void;
        /**
         * @deprecated Use `changeEtherBalance()` instead.
         */
        changeBalance(account: any, balance: any): AsyncAssertion;
        /**
         * @deprecated Use `changeEtherBalances()` instead.
         */
        changeBalances(accounts: any[], balances: any[]): AsyncAssertion;
        changeEtherBalance(account: any, balance: any, options?: any): AsyncAssertion;
        changeEtherBalances(accounts: any[], balances: any[], options?: any): AsyncAssertion;
        changeTokenBalance(token: any, account: any, balance: any, errorMargin?: any): AsyncAssertion;
        changeTokenBalances(token: any, accounts: any[], balances: any[], errorMargin?: any): AsyncAssertion;
        calledOnContract(contract: any): void;
        calledOnContractWith(contract: any, parameters: any[]): void;
    }
    interface NumberComparer {
        (value: any, message?: string): Assertion;
    }
    interface CloseTo {
        (expected: any, delta: any, message?: string): Assertion;
    }
    interface AsyncAssertion extends Assertion, Promise<void> {
    }
    interface EmitAssertion extends AsyncAssertion {
        withArgs(...args: any[]): AsyncAssertion;
        withNamedArgs(args: Record<string, unknown>): AsyncAssertion;
    }
    interface RevertedWithAssertion extends AsyncAssertion {
        withArgs(...args: any[]): AsyncAssertion;
    }
}
//# sourceMappingURL=types.d.ts.map