import { CallOverrides, PopulatedTransaction } from "@ethersproject/contracts";
import { ChainId } from "../chain";
import { ContractAddressId, ContractService, WrappedContract } from "../common";
import { Context } from "../context";
import { AddressProvider } from "./addressProvider";
/**
 * [[PartnerService]] provides access to yearns partner contract.
 * It's implemented in the form of a contract that lives on all networks
 * supported by yearn.
 */
export declare class PartnerService<T extends ChainId> extends ContractService<T> {
    static abi: string[];
    static IGNORED_ADDRESSES: string[];
    partnerId: string;
    static contractId: ContractAddressId;
    get contract(): Promise<WrappedContract>;
    get address(): Promise<string | undefined>;
    constructor(chainId: T, ctx: Context, addressProvider: AddressProvider<T>, partnerId: string);
    isAllowed(vault: string): boolean;
    deposit(vault: string, amount: string, overrides: CallOverrides): Promise<unknown>;
    populateDepositTransaction(vault: string, amount: string, overrides: CallOverrides): Promise<PopulatedTransaction>;
    encodeDeposit(vault: string, amount: string): Promise<string>;
}
