import { Address } from "../commonTypes";
import { ContractWrapperFactory } from "../contractWrapperFactory";
import { ArcTransactionResult, IContractWrapperFactory } from "../iContractWrapperBase";
import { TxGeneratingFunctionOptions } from "../transactionService";
import { InitializeOptions, Locking4ReputationWrapper, LockingOptions, ReleaseOptions } from "./locking4Reputation";
import { StandardTokenWrapper } from "./standardToken";
export declare class LockingToken4ReputationWrapper extends Locking4ReputationWrapper {
    name: string;
    friendlyName: string;
    factory: IContractWrapperFactory<LockingToken4ReputationWrapper>;
    initialize(options: LockTokenInitializeOptions & TxGeneratingFunctionOptions): Promise<ArcTransactionResult>;
    release(options: ReleaseOptions & TxGeneratingFunctionOptions): Promise<ArcTransactionResult>;
    /**
     * Returns reason why can't lock, else null if can lock
     */
    getLockBlocker(options: LockingOptions): Promise<string | null>;
    lock(options: LockingOptions & TxGeneratingFunctionOptions): Promise<ArcTransactionResult>;
    getToken(): Promise<StandardTokenWrapper>;
}
export declare class LockingToken4ReputationType extends ContractWrapperFactory<LockingToken4ReputationWrapper> {
    deployed(): Promise<LockingToken4ReputationWrapper>;
}
export declare const LockingToken4ReputationFactory: LockingToken4ReputationType;
export interface LockTokenInitializeOptions extends InitializeOptions {
    tokenAddress: Address;
}
