import { BaseFacadeClient, Logger, InitialTokens, IStorage, LogLevel, StateChange, StateChangeCallback, UIClient } from '@bodhiapp/bodhi-js-core'; import { DirectExtClient } from './direct-client'; import { ExtClient } from './ext-client'; /** * Internal config for ExtUIClient * All fields required - facade sets defaults */ export interface ExtUIClientConfig { authServerUrl: string; basePath: string; logLevel: LogLevel; apiTimeoutMs?: number; storage?: IStorage; initialTokens?: InitialTokens; initParams?: { extension?: { timeoutMs?: number; attempts?: number; attemptWaitMs?: number; attemptTimeout?: number; }; }; } /** * Optional configuration parameters for ExtUIClient constructor * Public type for consumers */ export interface ExtUIClientParams { authServerUrl?: string; basePath?: string; logLevel?: LogLevel; apiTimeoutMs?: number; storage?: IStorage; initialTokens?: InitialTokens; initParams?: { extension?: { timeoutMs?: number; attempts?: number; attemptWaitMs?: number; attemptTimeout?: number; }; }; } /** * ExtUIClient - Public facade for extension mode * * Automatically switches between DirectClient and ExtClient * based on stored user preferences. */ export declare class ExtUIClient extends BaseFacadeClient implements UIClient { constructor(authClientId: string, config?: ExtUIClientParams, onStateChange?: StateChangeCallback); protected createLogger(config: ExtUIClientConfig): Logger; protected createStoragePrefix(config: ExtUIClientConfig): string; protected createExtClient(config: ExtUIClientConfig, onStateChange: (change: StateChange) => void): ExtClient; protected createDirectClient(authClientId: string, config: ExtUIClientConfig, onStateChange: (change: StateChange) => void): DirectExtClient; }