import { IClientCallConfig } from './api'; import { IVTSParameter, ILive2DParameter, HotkeyType, RestrictedRawKey, ItemType, ErrorCode, PostProcessingEffectID, AnyPostProcessingConfigEntry, PostProcessingEffectConfigID } from './types'; import { IWebSocketLike } from './ws'; export interface IApiClientOptions { authTokenGetter: () => string | null | Promise; authTokenSetter: (authenticationToken: string) => Promise; pluginName: string; pluginDeveloper: string; pluginIcon?: string; url?: string; port?: number; webSocketFactory?: (url: string) => IWebSocketLike; } export declare class ApiClient { private _authTokenGetter; private _authTokenSetter; private _pluginName; private _pluginDeveloper; private _pluginIcon?; private _url; private _port; private _webSocketFactory; private _webSocket; private _connectHandlers; private _disconnectHandlers; private _errorHandlers; private _endpointHandlers; private _eventHandlers; private _isConnected; private _isConnecting; private _shouldReconnect; get isConnected(): boolean; get isConnecting(): boolean; constructor(options: IApiClientOptions); readonly apiState: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ active: boolean; vTubeStudioVersion: `${number}.${number}.${number}`; currentSessionAuthenticated: boolean; }>; readonly authenticationToken: (data: { pluginName: string; pluginDeveloper: string; pluginIcon?: string | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ authenticationToken: string; }>; readonly authentication: (data: { pluginName: string; pluginDeveloper: string; authenticationToken: string; }, config?: IClientCallConfig | undefined) => Promise<{ authenticated: boolean; reason: string; }>; readonly statistics: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ uptime: number; framerate: number; vTubeStudioVersion: `${number}.${number}.${number}`; allowedPlugins: number; connectedPlugins: number; startedWithSteam: boolean; windowWidth: number; windowHeight: number; windowIsFullscreen: boolean; }>; readonly vtsFolderInfo: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ models: string; backgrounds: string; items: string; config: string; logs: string; backup: string; }>; readonly currentModel: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ modelLoaded: boolean; modelName: string; modelID: string; vtsModelName: string; vtsModelIconName: string; live2DModelName: string; modelLoadTime: number; timeSinceModelLoaded: number; numberOfLive2DParameters: number; numberOfLive2DArtmeshes: number; hasPhysicsFile: boolean; numberOfTextures: number; textureResolution: number; modelPosition: { positionX: number; positionY: number; rotation: number; size: number; }; }>; readonly availableModels: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ numberOfModels: number; availableModels: { modelLoaded: boolean; modelName: string; modelID: string; vtsModelName: string; vtsModelIconName: string; }[]; }>; readonly modelLoad: (data: { modelID: string; }, config?: IClientCallConfig | undefined) => Promise<{ modelID: string; }>; readonly moveModel: (data: { timeInSeconds: number; valuesAreRelativeToModel: boolean; positionX?: number | undefined; positionY?: number | undefined; rotation?: number | undefined; size?: number | undefined; }, config?: IClientCallConfig | undefined) => Promise; readonly hotkeysInCurrentModel: (data: { modelID?: string | undefined; live2DItemFileName?: string | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ modelLoaded: boolean; modelName: string; modelID: string; availableHotkeys: { name: string; type: "MoveModel" | "Unset" | "TriggerAnimation" | "ChangeIdleAnimation" | "ToggleExpression" | "RemoveAllExpressions" | "ChangeBackground" | "ReloadMicrophone" | "ReloadTextures" | "CalibrateCam" | "ChangeVTSModel" | "TakeScreenshot" | "ScreenColorOverlay" | "RemoveAllItems" | "ToggleItemScene" | "DownloadRandomWorkshopItem" | "ExecuteItemAction" | "ArtMeshColorPreset" | "ToggleTracker" | "ToggleTwitchFeature" | "LoadEffectPreset" | "ToggleLive2DEditorAPI" | "WebItemAction"; description: string; file: string; hotkeyID: string; keyCombination: RestrictedRawKey[]; onScreenButtonID: number; }[]; }>; readonly hotkeyTrigger: (data: { hotkeyID: string; itemInstanceID?: string | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ hotkeyID: string; }>; readonly expressionState: (data: { details: boolean; expressionFile?: string | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ modelLoaded: boolean; modelName: string; modelID: string; expressions: { name: string; file: string; active: boolean; deactivateWhenKeyIsLetGo: boolean; autoDeactivateAfterSeconds: boolean; secondsRemaining: boolean; usedInHotkeys: { name: string; id: string; }[]; parameters: { name: string; value: number; }[]; }[]; }>; readonly expressionActivation: (data: { expressionFile: string; fadeTime?: number | undefined; active: boolean; }, config?: IClientCallConfig | undefined) => Promise; readonly artMeshList: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ modelLoaded: boolean; numberOfArtMeshNames: number; numberOfArtMeshTags: number; artMeshNames: string[]; artMeshTags: string[]; }>; readonly colorTint: (data: { colorTint: { colorR: number; colorG: number; colorB: number; colorA: number; mixWithSceneLightingColor?: number | undefined; jeb_?: true | undefined; }; artMeshMatcher: { tintAll: boolean; artMeshNumber?: number[] | undefined; nameExact?: string[] | undefined; nameContains?: string[] | undefined; tagExact?: string[] | undefined; tagContains?: string[] | undefined; }; }, config?: IClientCallConfig | undefined) => Promise<{ matchedArtMeshes: number; }>; readonly sceneColorOverlayInfo: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ active: boolean; itemsIncluded: boolean; isWindowCapture: boolean; baseBrightness: number; colorBoost: number; smoothing: number; colorOverlayR: number; colorOverlayG: number; colorOverlayB: number; colorAvgR: number; colorAvgG: number; colorAvgB: number; leftCapturePart: { active: boolean; colorR: number; colorG: number; colorB: number; }; middleCapturePart: { active: boolean; colorR: number; colorG: number; colorB: number; }; rightCapturePart: { active: boolean; colorR: number; colorG: number; colorB: number; }; }>; readonly faceFound: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ found: boolean; }>; readonly inputParameterList: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ modelLoaded: boolean; modelName: string; modelID: string; customParameters: IVTSParameter[]; defaultParameters: IVTSParameter[]; }>; readonly parameterValue: (data: { name: string; }, config?: IClientCallConfig | undefined) => Promise; readonly live2DParameterList: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ modelLoaded: boolean; modelName: string; modelID: string; parameters: ILive2DParameter[]; }>; readonly parameterCreation: (data: { parameterName: string; explanation: string; min: number; max: number; defaultValue: number; }, config?: IClientCallConfig | undefined) => Promise<{ parameterName: string; }>; readonly parameterDeletion: (data: { parameterName: string; }, config?: IClientCallConfig | undefined) => Promise<{ parameterName: string; }>; readonly injectParameterData: (data: { faceFound?: boolean | undefined; mode?: "set" | "add" | undefined; parameterValues: { id: string; weight?: number | undefined; value: number; }[]; }, config?: IClientCallConfig | undefined) => Promise; readonly getCurrentModelPhysics: (data?: undefined, config?: IClientCallConfig | undefined) => Promise<{ modelLoaded: boolean; modelName: string; modelID: string; modelHasPhysics: boolean; physicsSwitchedOn: boolean; usingLegacyPhysics: boolean; physicsFPSSetting: -1 | 120 | 30 | 60; baseStrength: number; baseWind: number; apiPhysicsOverrideActive: boolean; apiPhysicsOverridePluginName: string; physicsGroups: { groupID: string; groupName: string; strengthMultiplier: number; windMultiplier: number; }[]; }>; readonly setCurrentModelPhysics: (data: { strengthOverrides: { id: string; value: number; setBaseValue: boolean; overrideSeconds: number; }[]; windOverrides: { id: string; value: number; setBaseValue: boolean; overrideSeconds: number; }[]; }, config?: IClientCallConfig | undefined) => Promise; readonly ndiConfig: (data: { setNewConfig: boolean; ndiActive: boolean; useNDI5: boolean; useCustomResolution: boolean; customWidthNDI: number; customHeightNDI: number; }, config?: IClientCallConfig | undefined) => Promise<{ setNewConfig: boolean; ndiActive: boolean; useNDI5: boolean; useCustomResolution: boolean; customWidthNDI: number; customHeightNDI: number; }>; readonly itemList: (data: { includeAvailableSpots: boolean; includeItemInstancesInScene: boolean; includeAvailableItemFiles: boolean; onlyItemsWithFileName?: string | undefined; onlyItemsWithInstanceID?: string | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ itemsInSceneCount: number; totalItemsAllowedCount: number; canLoadItemsRightNow: boolean; availableSpots: number[]; itemInstancesInScene: { fileName: string; instanceID: string; order: number; type: ItemType; censored: boolean; flipped: boolean; locked: boolean; smoothing: number; framerate: number; frameCount: number; currentFrame: number; pinnedToModel: boolean; pinnedModelID: string; pinnedArtMeshID: string; groupName: string; sceneName: string; fromWorkshop: boolean; }[]; availableItemFiles: { fileName: string; type: ItemType; loadedCount: boolean; }[]; }>; readonly itemLoad: (data: { fileName: string; positionX?: number | undefined; positionY?: number | undefined; size?: number | undefined; rotation?: number | undefined; fadeTime?: number | undefined; order?: number | undefined; failIfOrderTaken?: boolean | undefined; smoothing?: number | undefined; censored?: boolean | undefined; flipped?: boolean | undefined; locked?: boolean | undefined; unloadWhenPluginDisconnects?: boolean | undefined; customDataBase64?: string | undefined; customDataAskUserFirst?: boolean | undefined; customDataSkipAskingUserIfWhitelisted?: boolean | undefined; customDataAskTimer?: number | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ instanceID: string; fileName: string; }>; readonly itemUnload: (data: { unloadAllInScene: boolean; unloadAllLoadedByThisPlugin: boolean; allowUnloadingItemsLoadedByUserOrOtherPlugins: boolean; instanceIDs: string[]; fileNames: string[]; }, config?: IClientCallConfig | undefined) => Promise<{ unloadedItems: { instanceID: string; fileName: string; }[]; }>; readonly itemAnimationControl: (data: { itemInstanceID: string; framerate: number; frame: number; brightness: number; opacity: number; setAutoStopFrames: boolean; autoStopFrames: number[]; setAnimationPlayState: boolean; animationPlayState: boolean; }, config?: IClientCallConfig | undefined) => Promise<{ frame: number; animationPlaying: boolean; }>; readonly itemMove: (data: { itemsToMove: { itemInstanceID: string; timeInSeconds?: number | undefined; fadeMode?: "linear" | "easeIn" | "easeOut" | "easeBoth" | "overshoot" | "zip" | undefined; positionX?: number | undefined; positionY?: number | undefined; size?: number | undefined; rotation?: number | undefined; order?: number | undefined; setFlip?: boolean | undefined; flip?: boolean | undefined; userCanStop?: boolean | undefined; }[]; }, config?: IClientCallConfig | undefined) => Promise<{ movedItems: { itemInstanceID: string; success: boolean; errorID: ErrorCode; }[]; }>; readonly itemSort: (data: { itemInstanceID: string; frontOn?: boolean | undefined; backOn?: boolean | undefined; setSplitPoint?: "Unchanged" | "UseArtMeshID" | undefined; setFrontOrder?: "Unchanged" | "UseArtMeshID" | "UseSpecialID" | undefined; setBackOrder?: "Unchanged" | "UseArtMeshID" | "UseSpecialID" | undefined; splitAt?: string | undefined; withinModelOrderFront?: string | undefined; withinModelOrderBack?: string | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ itemInstanceID: string; modelLoaded: boolean; modelID: string; modelName: string; loadedModelHadRequestedFrontLayer: boolean; loadedModelHadRequestedBackLayer: boolean; }>; readonly artMeshSelection: (data: { textOverride?: string | null | undefined; helpOverride?: string | null | undefined; requestedArtMeshCount: number; activeArtMeshes?: string[] | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ success: boolean; activeArtMeshes: string[]; inactiveArtMeshes: string[]; }>; readonly itemPin: (data: { itemInstanceID: string; pin: boolean; angleRelativeTo?: "RelativeToWorld" | "RelativeToCurrentItemRotation" | "RelativeToModel" | "RelativeToPinPosition" | undefined; sizeRelativeTo?: "RelativeToWorld" | "RelativeToCurrentItemSize" | undefined; vertexPinType?: "Provided" | "Center" | "Random" | undefined; pinInfo?: { modelID?: string | undefined; artMeshID?: string | undefined; angle: number; size: number; vertexID1?: number | undefined; vertexID2?: number | undefined; vertexID3?: number | undefined; vertexWeight1?: number | undefined; vertexWeight2?: number | undefined; vertexWeight3?: number | undefined; } | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ isPinned: boolean; itemInstanceID: string; itemFileName: string; }>; readonly postProcessingList: (data: { fillPostProcessingPresetsArray?: boolean | undefined; fillPostProcessingEffectsArray?: boolean | undefined; effectIDFilter?: PostProcessingEffectID[] | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ postProcessingSupported: boolean; postProcessingActive: boolean; canSendPostProcessingUpdateRequestRightNow: boolean; restrictedEffectsAllowed: boolean; presetIsActive: boolean; activePreset: string; presetCount: number; activeEffectCount: number; effectCountBeforeFilter: number; configCountBeforeFilter: number; effectCountAfterFilter: number; configCountAfterFilter: number; postProcessingEffects: { internalID: string; enumID: PostProcessingEffectID; explanation: string; effectIsActive: boolean; effectIsRestricted: boolean; configEntries: AnyPostProcessingConfigEntry[]; }[]; postProcessingPresets: string[]; }>; readonly postProcessingUpdate: (data: { postProcessingOn?: boolean | undefined; setPostProcessingPreset?: boolean | undefined; setPostProcessingValues?: boolean | undefined; presetToSet?: string | undefined; postProcessingFadeTime?: number | undefined; setAllOtherValuesToDefault?: boolean | undefined; usingRestrictedEffects?: boolean | undefined; randomizeAll?: boolean | undefined; randomizeAllChaosLevel?: number | undefined; postProcessingValues?: { configID: PostProcessingEffectConfigID; configValue: string; }[] | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ postProcessingActive: boolean; presetIsActive: boolean; activePreset: string; activeEffectCount: number; }>; readonly permission: (data: { requestedPermission?: "LoadCustomImagesAsItems" | undefined; }, config?: IClientCallConfig | undefined) => Promise<{ grantSuccess: boolean; requestedPermission: "LoadCustomImagesAsItems" | null; permissions: { name: "LoadCustomImagesAsItems"; granted: boolean; }[]; }>; events: { test: { subscribe: (callback: (data: { yourTestMessage: string; counter: number; }) => void, config: { testMessageForEvent?: string | undefined; }) => Promise; unsubscribe: () => Promise; }; modelLoaded: { subscribe: (callback: (data: { modelLoaded: boolean; modelName: string; modelID: string; }) => void, config: { modelID?: string[] | undefined; }) => Promise; unsubscribe: () => Promise; }; trackingStatusChanged: { subscribe: (callback: (data: { faceFound: boolean; leftHandFound: boolean; rightHandFound: boolean; }) => void, config?: {} | undefined) => Promise; unsubscribe: () => Promise; }; backgroundChanged: { subscribe: (callback: (data: { backgroundName: string; }) => void, config?: {} | undefined) => Promise; unsubscribe: () => Promise; }; modelConfigChanged: { subscribe: (callback: (data: { modelID: string; modelName: string; hotkeyConfigChanged: boolean; }) => void, config?: {} | undefined) => Promise; unsubscribe: () => Promise; }; modelMoved: { subscribe: (callback: (data: { modelID: string; modelName: string; modelPosition: { positionX: number; positionY: number; size: number; rotation: number; }; }) => void, config?: {} | undefined) => Promise; unsubscribe: () => Promise; }; modelOutline: { subscribe: (callback: (data: { modelName: string; modelID: string; convexHull: { x: number; y: number; }[]; convexHullCenter: { x: number; y: number; }; windowSize: { x: number; y: number; }; }) => void, config: { draw?: boolean | undefined; }) => Promise; unsubscribe: () => Promise; }; hotkeyTriggered: { subscribe: (callback: (data: { hotkeyID: string; hotkeyName: string; hotkeyAction: HotkeyType; hotkeyFile: string; hotkeyTriggeredByAPI: boolean; modelID: string; modelName: string; isLive2DItem: boolean; }) => void, config: { onlyForAction?: HotkeyType | undefined; ignoreHotkeysTriggeredByAPI?: boolean | undefined; }) => Promise; unsubscribe: () => Promise; }; modelAnimation: { subscribe: (callback: (data: { animationEventType: "Start" | "End" | "Custom"; animationEventTime: number; animationEventData: string; animationName: string; animationLength: number; isIdleAnimation: boolean; modelID: string; modelName: string; isLive2DItem: boolean; }) => void, config: { ignoreLive2DItems?: boolean | undefined; ignoreIdleAnimations?: boolean | undefined; }) => Promise; unsubscribe: () => Promise; }; item: { subscribe: (callback: (data: { itemEventType: "Added" | "Removed" | "DroppedPinned" | "DroppedUnpinned" | "Clicked" | "Locked" | "Unlocked"; itemInstanceID: string; itemFileName: string; itemPosition: { x: number; y: number; }; }) => void, config: { itemInstanceIDs?: string[] | undefined; itemFileNames?: string[] | undefined; }) => Promise; unsubscribe: () => Promise; }; modelClicked: { subscribe: (callback: (data: { modelLoaded: boolean; loadedModelID: string; loadedModelName: string; modelWasClicked: boolean; mouseButtonID: 1 | 2 | 3; clickPosition: { x: number; y: number; }; windowSize: { x: number; y: number; }; clickedArtMeshCount: number; artMeshHits: { artMeshOrder: number; isMasked: boolean; hitInfo: { modelID: string; artMeshID: string; angle: number; size: number; vertexID1: number; vertexID2: number; vertexID3: number; vertexWeight1: number; vertexWeight2: number; vertexWeight3: number; }; }[]; }) => void, config: { onlyClicksOnModel: boolean; }) => Promise; unsubscribe: () => Promise; }; postProcessing: { subscribe: (callback: (data: { currentOnState: boolean; currentPreset: string; }) => void, config?: {} | undefined) => Promise; unsubscribe: () => Promise; }; live2DCubismEditorConnected: { subscribe: (callback: (data: { tryingToConnect: boolean; connected: boolean; shouldSendParameters: boolean; }) => void, config?: {} | undefined) => Promise; unsubscribe: () => Promise; }; }; on(type: 'connect', handler: () => void): void; on(type: 'disconnect', handler: () => void): void; on(type: 'error', handler: (err: unknown) => void): void; off(type: 'connect', handler: () => void): void; off(type: 'disconnect', handler: () => void): void; off(type: 'error', handler: (err: unknown) => void): void; disconnect(): Promise; private _eventSubscription; private _createClientCall; private _createEventSubCalls; private _reconnect; private _disconnect; } //# sourceMappingURL=endpoints.d.ts.map