import { DelegateeDetails, DelegationDetails, DelegatorDetails } from '@airgap/coinlib-core';
import { Address } from '../../types/address';
import { PublicKey } from '../../types/key';
/**
* DO NOT USE!
* This is an internal type and will be removed in future releases.
*/
export interface AirGapDelegateProtocol {
getDefaultDelegatee(): Promise
;
getCurrentDelegateesForPublicKey(publicKey: PublicKey, data?: any): Promise;
getCurrentDelegateesForAddress(address: Address, data?: any): Promise;
getDelegateeDetails(address: Address, data?: any): Promise;
isPublicKeyDelegating(publicKey: PublicKey, data?: any): Promise;
isAddressDelegating(address: Address, data?: any): Promise;
getDelegatorDetailsFromPublicKey(publicKey: PublicKey, data?: any): Promise;
getDelegatorDetailsFromAddress(address: Address, data?: any): Promise;
getDelegationDetailsFromPublicKey(publicKey: PublicKey, delegatees: Address[], data?: any): Promise;
getDelegationDetailsFromAddress(address: Address, delegatees: Address[], data?: any): Promise;
prepareDelegatorActionFromPublicKey(publicKey: PublicKey, type: any, data?: any): Promise;
}