/** * Core types and interfaces for the Orbitport SDK */ import type { ErrorCode } from '../utils/errors'; export * from './kms'; export interface OrbitportConfig { clientId?: string; clientSecret?: string; authDomain?: string; audience?: string; apiUrl?: string; timeout?: number; retryAttempts?: number; retryDelay?: number; ipfs?: IPFSConfig; } export interface TokenStorage { get(): Promise; set(token: string, expiresAt: number): Promise; clear(): Promise; } export interface TokenResponse { access_token: string; expires_in: number; scope?: string; token_type: string; } export interface TokenData { access_token: string; expires_at: number; token_type: string; } export interface CTRNGResponse { service: string; src: string; data: string; signature?: { value: string; pk: string; algo?: string; }; timestamp?: string; provider?: string; } export interface APICTRNGRequest { src: 'trng' | 'rng'; } export interface IPFSCTRNGRequest { src: 'ipfs'; beaconPath?: string; block?: number | 'INF'; index?: number; } export type CTRNGRequest = APICTRNGRequest | IPFSCTRNGRequest; export interface BeaconData { previous?: string; sequence: number; timestamp: string; ctrng: number[]; } export interface BeaconResponse { data: BeaconData; previous?: string; } export interface IPFSSource { source: string; text?: string; error?: string; } export interface BeaconComparison { gateway: BeaconData | null; api: BeaconData | null; match: boolean; differences?: { sequence?: { gateway: number; api: number; }; previous?: { gateway: string; api: string; }; }; } export interface IPFSConfig { gateway?: string; apiUrl?: string; timeout?: number; enableFallback?: boolean; customNodes?: IPFSNode[]; defaultBeaconPath?: string; } export interface IPFSNode { url: string; type: 'gateway' | 'api'; priority?: number; timeout?: number; } export interface IPFSBeaconRequest { path: string; sources?: ('gateway' | 'api' | 'both')[]; timeout?: number; enableComparison?: boolean; } export interface OrbitportError extends Error { code: ErrorCode; status?: number; details?: unknown; } export interface APIError { error: string; error_description?: string; error_code?: string; details?: unknown; } export interface SDKEvent { type: 'token_refresh' | 'provider_switch' | 'error' | 'retry'; timestamp: number; data?: unknown; } export type SDKEventHandler = (event: SDKEvent) => void; export interface RequestOptions { timeout?: number; retries?: number; headers?: Record; } export interface ResponseMetadata { timestamp: number; request_id?: string; } export interface BrowserStorage extends TokenStorage { getItem(key: string): string | null; setItem(key: string, value: string): void; removeItem(key: string): void; } export interface NodeStorage extends TokenStorage { readFileSync(path: string): string; writeFileSync(path: string, data: string): void; unlinkSync(path: string): void; } export interface ValidationResult { valid: boolean; errors: string[]; } export interface SDKInitOptions { config: OrbitportConfig; storage?: TokenStorage; eventHandler?: SDKEventHandler; debug?: boolean; } export interface ServiceResult { data: T; metadata: ResponseMetadata; success: boolean; } export interface ServiceError { error: OrbitportError; metadata?: ResponseMetadata; retryable: boolean; } //# sourceMappingURL=index.d.ts.map