import { ContractName } from "../../contracts"; import type { PerpetualProtocolConnected } from "../PerpetualProtocol"; import { Channel, ChannelEventSource } from "../../internal"; declare type DelegateApprovalEventName = "delegateApprovalUpdated" | "updateError"; export interface DelegateApprovalConfigs { delegate: string; period: number; } export declare class DelegateApproval extends Channel { protected readonly _perp: PerpetualProtocolConnected; private readonly _contractReader; private _cache; private readonly _account; delegate: string; constructor(_perp: PerpetualProtocolConnected, configs?: DelegateApprovalConfigs); approveOpenPosition(): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof import("ethers").Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; revokeOpenPosition(): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof import("ethers").Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; approve(actions: number): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof import("ethers").Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; revoke(actions: number): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof import("ethers").Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; delegateApprovalForOpenPosition({ cache }?: { cache?: boolean | undefined; }): Promise; protected _getEventSourceMap(): { delegateApprovalUpdated: ChannelEventSource; }; private _fetchUpdateData; private _fetch; private _createFetchAndEmitDelegateApprovalUpdated; } export {};