import { type Permissions, type Provider } from 'everscale-inpage-provider';
import { type NekotonConnector } from './core';
export type Account = Permissions['accountInteraction'];
export declare enum ConnectionType {
    NEKOTON_WALLET = "NEKOTON_WALLET",
    NEKOTON_ADAPTER = "NEKOTON_ADAPTER",
    EXTERNAL_APP = "EXTERNAL_APP"
}
export interface RecentConnectionMeta {
    chainId?: string;
    disconnected?: boolean;
    providerId: string;
    type?: ConnectionType;
}
export type TvmWalletAvailablePlatforms = 'ios' | 'android' | 'chromeExtension' | 'firefoxExtension';
export type TvmWalletPlatformLinks = Partial<Record<TvmWalletAvailablePlatforms, string>>;
export type PopupType = 'drawer';
export interface TvmWalletProviderInfo {
    description?: string;
    hasScanner?: boolean;
    icon?: string;
    icons?: {
        dark?: string;
        light?: string;
    };
    links?: TvmWalletPlatformLinks & {
        homepage?: string;
        universalLink?: string;
    };
    name: string;
}
export interface TvmWalletProviderConfig {
    connector: NekotonConnector;
    id: string;
    info?: TvmWalletProviderInfo;
    isRecent?: boolean;
    minVersion?: string;
}
export declare enum TvmWalletRdnsList {
    SPARX_WALLET = "com.sparxwallet",
    SPARX_WALLET_MOBILE = "com.broxus.sparx.app",
    EVER_WALLET = "net.everwallet",
    EVER_WALLET_MOBILE = "com.broxus.crystal.app",
    VENOM_WALLET = "com.venomwallet",
    VENOM_WALLET_MOBILE = "com.venom.wallet"
}
export declare enum TvmProviderEvent {
    REQUEST_PROVIDER = "tvm:requestProvider",
    ANNOUNCE_PROVIDER = "tvm:announceProvider"
}
export interface TvmAnnounceProviderEvent extends CustomEvent {
    detail: TvmProviderDetail;
    type: TvmProviderEvent.ANNOUNCE_PROVIDER;
}
export interface TvmProviderDetail {
    info: TvmProviderInfo;
    provider: Provider;
}
export interface TvmProviderInfo {
    name: string;
    rdns?: string;
}
export interface NekotonConnectorInitCtorParams {
    autoInit?: boolean;
    fallbackAttempts?: number;
}
