import { Name, NameType, Action } from '@wharfkit/antelope';
import { Contract as AntelopeContract, ActionOptions } from '@wharfkit/contract';
export declare function loadContract(account: NameType): Promise<AntelopeContract>;
export type ActionGetters = {
    [key: string]: (data: any, authorization?: ActionOptions) => Action;
};
export declare abstract class Contract {
    contractName: Name;
    contract: AntelopeContract;
    /**
     * Creates a new instance of the Contract class.
     *
     * @param {AntelopeContract} contract - The Antelope contract instance to use.
     * @param {boolean} [reload=false] - If true, reload the contract from the blockchain after instantiation (in case the abi has changed).
     */
    constructor(contract: AntelopeContract, reload?: boolean);
    protected reloadContract(): Promise<void>;
    /**
     * This should be overridden by subclasses to return the contract instance for a specific account.
     */
    protected action(name: NameType, data: any, authorization?: ActionOptions): Action;
    actions: ActionGetters;
}
//# sourceMappingURL=Contract.d.ts.map