import { providers } from 'ethers'; import { ConnectionInfo } from 'ethers/lib/utils'; import { SSXClientSession } from './client'; import type { AxiosRequestConfig } from 'axios'; /** SSX Route Configuration * This configuration is used to override the default endpoint paths. * The config options here are a subset of the * [AxiosRequestConfig](https://axios-http.com/docs/req_config). * This type does not explicitly extend AxiosRequestConfig, * but those options are supported by the client. */ export interface SSXRouteConfig { /** Endpoint path. */ url?: string; /** Endpoint request method. */ method?: 'get' | 'post' | 'put' | 'delete'; /** Custom Operation. * Replace the ssx function called with a function of your own **/ customAPIOperation?(params: SSXClientSession | Record | any): Promise; } /** Type-Guard for SSXRouteConfig. */ export declare const isSSXRouteConfig: (config: SSXServerRouteEndpointType) => config is SSXRouteConfig | SSXServerMiddlewareConfig | AxiosRequestConfig; export interface SSXServerMiddlewareConfig { path: string; callback?: (req: any, body?: Record) => Promise | void; } /** Type-Guard for SSXServerMiddlewareConfig. */ export declare const isSSXServerMiddlewareConfig: (config: SSXServerRouteEndpointType) => config is SSXServerMiddlewareConfig; export type SSXServerRouteEndpointType = Partial | AxiosRequestConfig | string | SSXServerMiddlewareConfig; /** Server endpoints configuration. */ export interface SSXServerRoutes { /** Get nonce endpoint path. /ssx-nonce as default. */ nonce?: SSXServerRouteEndpointType; /** Post login endpoint path. /ssx-login as default. */ login?: SSXServerRouteEndpointType; /** Post logout endpoint path. /ssx-logout as default. */ logout?: SSXServerRouteEndpointType; } /** Server endpoints name configuration. */ export interface SSXServerRouteNames { /** Get nonce endpoint path. /ssx-nonce as default. */ nonce?: string; /** Post login endpoint path. /ssx-login as default. */ login?: string; /** Post logout endpoint path. /ssx-logout as default. */ logout?: string; } /** Supported provider types. */ export type SSXRPCProvider = SSXGenericProvider | SSXEtherscanProvider | SSXInfuraProvider | SSXAlchemyProvider | SSXCloudflareProvider | SSXPocketProvider | SSXAnkrProvider | SSXCustomProvider; /** Enum of supported EthersJS providers. */ export declare enum SSXRPCProviders { SSXAlchemyProvider = "alchemy", SSXAnkrProvider = "ankr", SSXCloudflareProvider = "cloudflare", SSXCustomProvider = "custom", SSXEtherscanProvider = "etherscan", SSXInfuraProvider = "infura", SSXPocketProvider = "pocket" } /** Enum of supported networks for Etherscan. */ export declare enum SSXEtherscanProviderNetworks { MAINNET = "homestead", ROPSTEN = "ropsten", RINKEBY = "rinkeby", GOERLI = "goerli", KOVAN = "kovan" } /** Etherscan provider settings. */ export type SSXEtherscanProvider = { service: SSXRPCProviders.SSXEtherscanProvider; apiKey?: string; network?: SSXEtherscanProviderNetworks; }; export declare const isSSXEtherscanProvider: (provider: SSXRPCProvider) => provider is SSXEtherscanProvider; /** Enum of supported networks for Infura. */ export declare enum SSXInfuraProviderNetworks { MAINNET = "homestead", ROPSTEN = "ropsten", RINKEBY = "rinkeby", GOERLI = "goerli", KOVAN = "kovan", POLYGON = "matic", POLYGON_MUMBAI = "maticmum", OPTIMISM = "optimism", OPTIMISM_KOVAN = "optimism-kovan", ARBITRUM = "arbitrum", ARBITRUM_RINKEBY = "arbitrum-rinkeby" } /** Infura provider project settings. */ export type SSXInfuraProviderProjectSettings = { projectId: string; projectSecret: string; }; /** Infura provider settings. */ export type SSXInfuraProvider = { service: SSXRPCProviders.SSXInfuraProvider; apiKey: string | SSXInfuraProviderProjectSettings; network?: SSXInfuraProviderNetworks; }; export declare const isSSXInfuraProvider: (provider: SSXRPCProvider) => provider is SSXInfuraProvider; /** Enum of supported networks for Alchemy. */ export declare enum SSXAlchemyProviderNetworks { MAINNET = "homestead", ROPSTEN = "ropsten", RINKEBY = "rinkeby", GOERLI = "goerli", KOVAN = "kovan", POLYGON = "matic", POLYGON_MUMBAI = "maticmum", OPTIMISM = "optimism", OPTIMISM_KOVAN = "optimism-kovan", ARBITRUM = "arbitrum", ARBITRUM_RINKEBY = "arbitrum-rinkeby" } /** Alchemy provider settings. */ export type SSXAlchemyProvider = { service: SSXRPCProviders.SSXAlchemyProvider; apiKey?: string; network?: SSXAlchemyProviderNetworks; }; export declare const isSSXAlchemyProvider: (provider: SSXRPCProvider) => provider is SSXAlchemyProvider; /** Cloudflare provider settings. */ export type SSXCloudflareProvider = { service: SSXRPCProviders.SSXCloudflareProvider; }; export declare const isSSXCloudflareProvider: (provider: SSXRPCProvider) => provider is SSXCloudflareProvider; /** Enum of supported networks for Pocket. */ export declare enum SSXPocketProviderNetworks { MAINNET = "homestead", ROPSTEN = "ropsten", RINKEBY = "rinkeby", GOERLI = "goerli" } /** Pocket provider settings. */ export type SSXPocketProvider = { service: SSXRPCProviders.SSXPocketProvider; apiKey?: string; network?: SSXPocketProviderNetworks; }; /** Type-Guard for SSXPocketProvider. */ export declare const isSSXPocketProvider: (provider: SSXRPCProvider) => provider is SSXPocketProvider; /** Enum of supported networks for Ankr. */ export declare enum SSXAnkrProviderNetworks { MAINNET = "homestead", POLYGON = "matic", ARBITRUM = "arbitrum" } /** Ankr provider settings. */ export type SSXAnkrProvider = { service: SSXRPCProviders.SSXAnkrProvider; apiKey?: string; network?: SSXAnkrProviderNetworks; }; /** Type-Guard for SSXAnkrProvider. */ export declare const isSSXAnkrProvider: (provider: SSXRPCProvider) => provider is SSXAnkrProvider; /** Custom provider settings. */ export type SSXCustomProvider = { service: SSXRPCProviders.SSXCustomProvider; url?: string | ConnectionInfo; network?: providers.Networkish; }; /** Type-Guard for SSXCustomProvider. */ export declare const isSSXCustomProvider: (provider: SSXRPCProvider) => provider is SSXCustomProvider; /** Generic provider settings. */ export type SSXGenericProvider = { service: SSXRPCProviders; url?: string | ConnectionInfo; network?: providers.Networkish; apiKey?: string | SSXInfuraProviderProjectSettings; }; /** ENS options supported by SSX. */ export interface SSXEnsResolveOptions { /** Enable ENS name/domain resolution. */ domain?: boolean; /** Enable ENS avatar resolution. */ avatar?: boolean; } /** ENS data supported by SSX. */ export interface SSXEnsData { /** ENS name/domain. */ domain?: string | null; /** ENS avatar. */ avatarUrl?: string | null; } /** Lens profiles page info */ export interface SSXLensProfilesPageInfo { /** Cursor to previous page, e.g. '\{"offset":0\}'. */ prev: string; /** Cursor to next page, e.g. '\{"offset":10\}'. */ next: string; /** Total profiles available to retrieve. */ totalCount: number; } /** Lens profiles item */ export interface SSXLensProfileData { id: string; name: string | null; bio: string | null; attributes: Array; followNftAddress: string | null; metadata: string | null; isDefault: boolean; picture: string | null; handle: string | null; coverPicture: string | null; ownedBy: string | null; dispatcher: any; stats: any; followModule: any; } /** Lens profiles. */ export interface SSXLensProfilesResponse { /** Lens profiles array. */ items: Array; /** Lens pagination info. */ pageInfo?: SSXLensProfilesPageInfo; } //# sourceMappingURL=types.d.ts.map