import { Operator as OperatorContract, Sponsorship as SponsorshipContract } from '@streamr/network-contracts';
import { WeiAmount } from '@streamr/utils';
import { EnvironmentId } from '../Config';
import { SignerWithProvider } from '../identity/Identity';
/**
 * @deprecated
 * @hidden
 */
export interface DeployOperatorContractOpts {
    deployer: SignerWithProvider;
    operatorsCutPercentage?: number;
    metadata?: string;
    operatorTokenName?: string;
    environmentId: EnvironmentId;
}
/**
 * @param opts.deployer should be the operator's Wallet
 * @returns Operator
 */
export declare function deployOperatorContract(opts: DeployOperatorContractOpts): Promise<OperatorContract>;
/**
 * @deprecated
 * @hidden
 */
export interface DeploySponsorshipContractOpts {
    streamId: string;
    deployer: SignerWithProvider;
    metadata?: string;
    earningsPerSecond: WeiAmount;
    minOperatorCount?: number;
    maxOperatorCount?: number;
    minStakeDuration?: number;
    environmentId: EnvironmentId;
}
export declare function deploySponsorshipContract(opts: DeploySponsorshipContractOpts): Promise<SponsorshipContract>;
export declare const delegate: (delegator: SignerWithProvider, operatorContractAddress: string, amount: WeiAmount) => Promise<void>;
export declare const undelegate: (delegator: SignerWithProvider, operatorContractAddress: string, amount: WeiAmount) => Promise<void>;
export declare const stake: (staker: SignerWithProvider, operatorContractAddress: string, sponsorshipContractAddress: string, amount: WeiAmount) => Promise<void>;
export declare const unstake: (staker: SignerWithProvider, operatorContractAddress: string, sponsorshipContractAddress: string) => Promise<void>;
export declare const sponsor: (sponsorer: SignerWithProvider, sponsorshipContractAddress: string, amount: WeiAmount) => Promise<void>;
export declare const transferTokens: (from: SignerWithProvider, to: string, amount: WeiAmount, tokenAddress: string) => Promise<void>;
export declare const getOperatorContract: (operatorAddress: string) => OperatorContract;
