import { Address } from './common';
export interface PassportInfo {
    passportId: number;
    passportAddress: Address;
    boundWallets: readonly Address[];
    walletCount: number;
}
export interface WalletPassportResult {
    hasPassport: boolean;
    passportId?: number;
    passportAddress?: Address;
}
export interface PendingBindRequest {
    exists: boolean;
    requester: Address;
    timestamp: number;
    expired: boolean;
}
export interface RegistryMethods {
    createPassport(): Promise<any>;
    checkWalletHasPassport(walletAddress: Address): Promise<WalletPassportResult>;
    getPassportInfo(passportAddress: Address): Promise<PassportInfo>;
    predictPassportAddress(walletAddress: Address): Promise<Address>;
    upgradeMyPassport(): Promise<any>;
    getPassportImplementation(): Promise<Address>;
    getPassportIdCounter(): Promise<number>;
    getPassportAddressById(passportId: number): Promise<Address>;
    isWalletAbolished(walletAddress: Address): Promise<boolean>;
    isWalletUnboundFromPassport(passportId: number, walletAddress: Address): Promise<boolean>;
    hasPassport(walletAddress: Address, passportContractAddress: Address): Promise<boolean>;
}
export interface PassportMethods {
    unbindWallet(passportAddress: Address): Promise<any>;
    requestBindWallet(passportAddress: Address, walletAddress: Address): Promise<any>;
    getPendingBindRequest(passportAddress: Address, walletAddress: Address): Promise<PendingBindRequest>;
    cancelBindRequest(passportAddress: Address, walletAddress: Address): Promise<any>;
    acceptBindRequest(passportAddress: Address): Promise<any>;
    rejectBindRequest(passportAddress: Address): Promise<any>;
    getPendingBindWallets(passportAddress: Address, account: Address): Promise<readonly Address[]>;
    checkPassportUpgrade(passportAddress: Address): Promise<boolean>;
    getPassportImplementationAddress(passportAddress: Address): Promise<Address>;
    getPassportId(passportAddress: Address): Promise<number>;
    getRegistryAddress(passportAddress: Address): Promise<Address>;
    isWalletBound(passportAddress: Address, walletAddress: Address): Promise<boolean>;
    getBoundWallets(passportAddress: Address): Promise<readonly Address[]>;
    getWalletCount(passportAddress: Address): Promise<number>;
    getBoundWalletByIndex(passportAddress: Address, index: number): Promise<Address>;
    hasPendingBindRequest(passportAddress: Address, walletAddress: Address): Promise<boolean>;
    cancelExpiredBindRequest(passportAddress: Address, walletAddress: Address): Promise<any>;
}
//# sourceMappingURL=passport.d.ts.map