import { ClientDuplexStream } from '@grpc/grpc-js'; import { CapabilitiesConfiguration } from '../../../../proto/ai/inworld/engine/configuration/configuration_pb'; import { AccessToken, ClientRequest } from '../../../../proto/ai/inworld/engine/world-engine_pb'; import { CurrentSceneStatus, InworldPacket as ProtoPacket } from '../../../../proto/ai/inworld/packets/packets_pb'; import { ApiKey, Awaitable, InternalClientConfiguration, User } from '../../common/data_structures'; import { Extension } from '../../common/data_structures/extension'; import { SessionContinuation } from '../../entities/continuation/session_continuation.entity'; import { InworldError } from '../../entities/error.entity'; import { InworldPacket } from '../../entities/packets/inworld_packet.entity'; import { SessionToken } from '../../entities/session_token.entity'; export interface OpenSessionProps { name: string; client?: ClientRequest; user?: User; sessionToken: SessionToken; sessionContinuation?: SessionContinuation; config: InternalClientConfiguration; extension: Extension; onDisconnect?: () => Awaitable; onError?: (err: InworldError) => Awaitable; onMessage: (message: ProtoPacket) => Awaitable; } export interface ReopenSessionProps { sessionToken: SessionToken; onDisconnect?: () => Awaitable; onError?: (err: InworldError) => Awaitable; onMessage: (message: ProtoPacket) => Awaitable; } interface UpdateSessionProps { sessionToken: SessionToken; connection: ClientDuplexStream; name?: string; extension: Extension; gameSessionId?: string; capabilities?: CapabilitiesConfiguration; sessionContinuation?: SessionContinuation; onMessage: (message: ProtoPacket) => Awaitable; } export declare class WorldEngineClientGrpcService { private readonly config; private readonly address; private readonly ssl; private readonly grpcOptions; private readonly client; private logger; generateSessionToken(apiKey: ApiKey, scene: string): Promise; openSession(props: OpenSessionProps): Promise<[ ClientDuplexStream, CurrentSceneStatus ]>; reopenSession(props: ReopenSessionProps): ClientDuplexStream; updateSession(props: UpdateSessionProps): Promise<[ ClientDuplexStream, CurrentSceneStatus ]> | []; private onLoad; private getMetadata; private getClient; private getUserConfiguration; private getContinuation; private writeInitialPackets; } export {};