/// export declare enum State { ACTIVE = "ACTIVE", REVOKED = "REVOKED", FROZEN = "FROZEN" } export interface ChainErrorResponse { errorCode?: string; } export type GatewayToken = { readonly issuingGatekeeper: string; readonly gatekeeperNetworkAddress: string; readonly owner: string; readonly state: State; readonly identifier: string; readonly expiryTime?: number; }; export declare enum TokenState { REQUESTED = "REQUESTED", ACTIVE = "ACTIVE", REVOKED = "REVOKED", FROZEN = "FROZEN", REJECTED = "REJECTED" } export type GatekeeperRecord = { walletAddress: string; token?: string; state: TokenState; expiryTimestamp?: number; issueTimestamp?: number; }; export declare enum GatekeeperAPIStatus { REQUESTING = 0, NOT_REQUESTED = 404, REQUESTED = 202, ISSUED = 200, ISSUED_EXPIRY_APPROACHING = 205, ISSUED_EXPIRED = 426, LOCATION_NOT_SUPPORTED = 401, REJECTED = 403, VPN_NOT_SUPPORTED = 421, ISSUED_LOCATION_NOT_SUPPORTED = 412, ISSUED_VPN_NOT_SUPPORTED = 451, SERVER_FAILURE = 500, REQUESTED_RETRIES_EXHAUSTED = 408 } export declare enum GatewayStatus { UNKNOWN = 0, CHECKING = 1, NOT_REQUESTED = 2, COLLECTING_USER_INFORMATION = 3, PROOF_OF_WALLET_OWNERSHIP = 4, IN_REVIEW = 5, REJECTED = 6, REVOKED = 7, FROZEN = 8, ACTIVE = 9, ERROR = 10, LOCATION_NOT_SUPPORTED = 11, VPN_NOT_SUPPORTED = 12, REFRESH_TOKEN_REQUIRED = 13, VALIDATING_USER_INFORMATION = 14, USER_INFORMATION_VALIDATED = 15, USER_INFORMATION_REJECTED = 16 } export declare enum ExtendedGatewayStatus { AWAITING_OWNER_TRANSACTION = 100, CHAIN_TIMEOUT_ERROR = 101, CONFIRM_OWNER_TRANSACTION = 102, CHAIN_TRANSACTION_ERROR = 103, TOKEN_IN_PARTNER_REVIEW = 104, TOKEN_REFRESH_IN_REVIEW = 105 } export type InternalGatewayStatus = GatewayStatus | ExtendedGatewayStatus; export interface WalletAdapter { publicKey: string; } /** * The properties that the component exposes to the user through useGateway */ export type GatewayProps = { requestGatewayToken: () => Promise; gatewayStatus: GatewayStatus; gatewayToken?: GatewayToken; gatewayTokenTransaction?: string; civicPassSrcUrl?: string; pendingRequests?: PendingPayload; }; /** * The properties object passed by the dApp when defining the component */ export type GatewayProviderProps = { wallet: WalletAdapter | undefined; gatekeeperNetwork: string | undefined; chainImplementation: ChainLegacy | undefined; payer?: string; gatekeeperSendsTransaction: boolean; stage?: string; wrapper?: React.FC; logo?: string; redirectUrl?: string; options?: Options; gatewayTokenTransaction?: string; children?: React.ReactNode; expiryMarginSeconds?: number; partnerAppId?: string; forceRequireRefresh?: boolean; hideWalletPrompts?: boolean; }; export type CreateTokenRequest = { wallet: WalletAdapter; payload?: unknown; proof?: string; payer?: string; }; export declare enum TokenIssuanceState { NOT_REQUESTED = 0, IN_PROGRESS = 1, IN_PARTNER_REVIEW = 2, PENDING_ONCHAIN_CONFIRMATION = 3, COMPLETED = 4, FAILED = 5 } export declare enum CivicPassIssuanceStatus { NOT_REQUESTED = 0, REQUESTED = 1, VERIFIED = 2, FAILED = 3 } export declare enum RefreshTokenState { NOT_REQUIRED = 0, CHECK_TOKEN_EXPIRATION = 1, WAIT_FOR_ON_CHAIN = 2, IN_PROGRESS = 3, REQUIRES_POWO = 4, COMPLETED = 5, CANCELLED = 6, FAILED = 7 } export declare enum LogLevel { DEBUG = "debug", INFO = "info", WARN = "warn", ERROR = "error" } export type Options = { autoShowModal: boolean; logLevel?: LogLevel; }; export type PendingPayload = { presentationRequestId: string; }; export declare enum FetchStatus { FETCHING = "fetching", COMPLETE = "complete", ERROR = "error" } export type RootState = { options: Options; dataCollectionStatus?: ValidationStatus; fetchOnChainStatus: FetchStatus | undefined; gatewayStatus: InternalGatewayStatus; gatekeeperRecordState?: GatekeeperAPIStatus; tokenRequested: boolean; iframeMinimized: boolean; firstTokenCheck: boolean; renderIframe: boolean; powoFinished: boolean; gatewayToken?: GatewayToken; powoRequested?: string; walletPowoInProgress: boolean; refreshTimeoutId?: number; walletToRefresh?: WalletAdapter; refreshInProgress: boolean; tokenIssuanceState: TokenIssuanceState; refreshTokenState: RefreshTokenState | undefined; iframeSrcUrl?: string; stage: string; redirectUrl: string; walletAddress?: string; civicPass: CivicPassState; gatekeeperNetworkAddress?: string; chainType: ChainType | undefined; chainNetwork: string | undefined; payer: string | undefined; gatekeeperSendsTransaction: boolean; ownerTransactionConfirmed: boolean; gatewayTokenTransaction?: string; inputExpiryMarginSeconds: number; tokenCreatedOrChangedListenerId?: number; tokenExpectedTimerId?: number; partnerAppId?: string; pending?: PendingPayload; userInitiatedFlow: boolean; instanceId: string; signedTx?: string; flowId?: string; did?: string; hideWalletPrompts?: boolean; }; export type CivicPassActionPayload = { payload?: unknown; errorCode?: string; }; export type CivicPassState = { status: CivicPassIssuanceStatus; requestPayload?: unknown; responsePayload?: { [CivicPassMessageAction: string]: CivicPassActionPayload; }; }; export type ChainHttpConfig = { baseUrl: string; queryParams: Record; headers: Record; }; export declare enum ChainType { SOLANA = "solana", ETHEREUM = "ethereum", CASPER = "casper" } export interface ChainImplementationProps { network?: string; owner?: string; gatekeeperNetwork?: string; stage?: string; } export declare enum SignatureMethod { TRANSACTION = 0, MESSAGE = 1 } export type ProveWalletOwnershipResponse = { proof: string; signatureMethod: SignatureMethod; }; export interface ChainLegacy { addOnGatewayTokenChangeListener: (gatewayToken: GatewayToken, tokenDidChange: (GatewayToken: GatewayToken) => void) => Promise; addOnGatewayTokenCreatedOrChangedListener?: (tokenChange: (GatewayToken: GatewayToken) => void) => number; removeOnGatewayTokenChangeListener: (listenerId: number) => void; findGatewayToken: () => Promise; proveWalletOwnership: (message?: string) => Promise; signMessage?: (message: Uint8Array) => Promise; handleUserSignedTransaction: (partiallySignedTx: string) => Promise; did: string; httpConfig: ChainHttpConfig; chainType: ChainType; chainNetwork: string; dAppHandlesTransactions: boolean; initProps: ChainImplementationProps; onDestroy: () => void; } export declare enum CivicPassMessageEventResult { SUCCESS = "success", FAILURE = "failure", CANCELLED = "cancelled", IN_PROGRESS = "inProgress", ERROR = "error" } export declare enum CivicPassMessageAction { ISSUANCE = "issuance", CONFIRM_TRANSACTION = "confirmTransaction", TOKEN_FROZEN = "tokenFrozen", TOKEN_ACTIVE = "tokenActive", TOKEN_REVOKED = "tokenRevoked", TOKEN_REJECTED = "tokenRejected", TOKEN_IN_REVIEW = "tokenInReview", TOKEN_REFRESH_IN_REVIEW = "tokenRefreshInReview", TOKEN_IN_PARTNER_REVIEW = "tokenInPartnerReview", FAILED_IP_CHECK = "failedIpCheck", FAILED_VPN_CHECK = "failedVpnCheck", REFRESH = "refresh", PROOF_OF_WALLET_OWNERSHIP = "proofOfWalletOwnership", STATUS = "status", ERROR = "error", CHAIN_ERROR = "chainError", SIGN_TRANSACTION = "signTransaction", AWAITING_TRANSACTION_CONFIRMATION = "awaitingTransactionConfirmation" } export interface CivicPassMessageResponse { event: CivicPassMessageEventResult; action: CivicPassMessageAction; payload?: unknown; instanceId?: string; } export type CivicPassMessageResponsePayload = { status: ValidationStatus; }; export interface CivicPassMessageRequest { action: CivicPassMessageAction; networkAddress: string; payload?: string; } export interface CivicPassMessageEventResponse extends MessageEvent { data: CivicPassMessageResponse; } export declare enum ValidationStatus { COLLECTING = "COLLECTING", PROCESSING = "PROCESSING", IN_REVIEW = "IN_REVIEW", COMPLETED = "COMPLETED", FAILED = "FAILED", NOT_FOUND = "NOT_FOUND" } export declare class ChainTransactionError extends Error { constructor(message: string); } export type ErrorWithCode = Error & { code?: number; message: string; }; export declare enum FlowType { ISSUANCE = "issuance", REFRESH = "refresh", STATUS = "status" }