import { ethers } from '@credenza3/core-web-evm-ext';
import { Chains, NetworkTypes, Pages, TransactionTypes, Themes, NavDirections, NavMinimizationTogglerPositions, ScanTypes } from '../../utils/enums';
import { PassportEvents } from '../../utils/lib/events/events.enums';
import { default as AbstractPassport } from '../../utils/classes/passport.abstract';
import { TPassportConfig, TPassportConstructor, TChainId, TCredenzaContracts, TUser, TToastMessageOpts, TPassportEvmExtension } from '../../utils/types';
import { passportAuth, passportInit, passportBlockchain, passportCommon, passportUser, passportEvents } from './passport/index';
export declare class Passport implements AbstractPassport {
    static version: string;
    static chains: typeof Chains;
    static pages: typeof Pages;
    static paymentTypes: typeof TransactionTypes;
    static themes: typeof Themes;
    static navDirections: typeof NavDirections;
    static navMinimizationTogglerPositions: typeof NavMinimizationTogglerPositions;
    static scanTypes: typeof ScanTypes;
    static events: typeof PassportEvents;
    accessToken: string | null;
    config: TPassportConfig<TPassportEvmExtension>;
    isLoggedIn: boolean;
    user: TUser | null;
    ethers: typeof ethers;
    provider: ethers.BrowserProvider | null;
    chainId: TChainId;
    contracts: TCredenzaContracts;
    networkType: NetworkTypes.MAINNET | NetworkTypes.TESTNET;
    constructor(opts: TPassportConstructor<TPassportEvmExtension>);
    login: typeof passportAuth.login;
    setAccessToken: typeof passportAuth.setAccessToken;
    logout: typeof passportAuth.logout;
    openUI: (page?: import('../../utils/types').TPage, pageOpts?: unknown) => Promise<void>;
    close: () => void;
    toastAlert: (message: string, type?: "success" | "warning" | "failure" | "info", opts?: TToastMessageOpts) => void;
    destroy: () => Promise<void>;
    hideNavigation: () => void;
    showNavigation: (styles?: {}, navConfig?: import('../../utils/types').TNavConfig) => Promise<void>;
    configurePassport: typeof passportInit.configurePassport;
    init: typeof passportInit.init;
    getCREDContract: typeof passportBlockchain.getCREDContract;
    checkMembership: typeof passportBlockchain.checkMembership;
    sendTokens: typeof passportBlockchain.sendTokens;
    getWeb3Provider: typeof passportBlockchain.getWeb3Provider;
    getAddress: typeof passportBlockchain.getAddress;
    sendNft: typeof passportBlockchain.sendNft;
    switchChain: typeof passportBlockchain.switchChain;
    getBalance: () => Promise<any>;
    requestAirDrop: typeof passportBlockchain.requestAirDrop;
    getAssets: typeof passportBlockchain.getAssets;
    updateProfile: typeof passportUser.updateProfile;
    confirmAccount: typeof passportUser.confirmAccount;
    deleteAccount: () => Promise<void>;
    getUser: () => Promise<TUser>;
    friends: {
        getFriendsPaginated: (params?: import('../../utils/types').TGetFriendsPaginatedParams) => Promise<import('../../utils/types').TPaginatedFriendsResponse>;
        sendFriendRequest: (targetSub: string, clientId?: string) => Promise<import('../../utils/types').TFriendship>;
        acceptFriendRequest: (friendshipId: string) => Promise<import('../../utils/types').TFriendship>;
        blockUser: (targetSub: string, clientId?: string) => Promise<import('../../utils/types').TFriendship>;
        unblockUser: (targetSub: string, clientId?: string) => Promise<import('../../utils/types').TFriendship>;
        removeFriend: (targetSub: string, clientId?: string) => Promise<import('../../utils/types').TFriendship>;
        getFriendInfo: (targetSub: string, params?: import('../../utils/types').TGetFriendInfoParams) => Promise<import('../../utils/types').TFriendInfo>;
    };
    requestLoyaltyPoints: typeof passportCommon.requestLoyaltyPoints;
    on: typeof passportEvents.on;
    once: typeof passportEvents.once;
}
export interface Passport {
}
