UNPKG

altair-graphql-core

Version:

Several of the core logic for altair graphql client

97 lines 3.74 kB
import { IMessage, ISendMessageDto, ISession } from '../../ai/types'; import { ICustomTheme } from '../../theme'; import { IPlan, IAvailableCredits } from '../../types/state/account.interfaces'; import { ExportWindowState } from '../../types/state/window.interfaces'; import { CreateActionOptions, CreatePanelOptions, PluginWindowState } from '../context/context.interface'; import { PluginEvent, PluginEventCallback } from '../event/event.interfaces'; export interface PluginUserInfo { loggedIn: boolean; name: string; email: string; avatar: string; plan?: IPlan; } export interface PluginV3Context { /** * Returns data about a window (tab) in the app */ getWindowState(windowId: string): Promise<PluginWindowState | undefined>; /** * Returns data about the current window (tab) in the app */ getCurrentWindowState(): Promise<PluginWindowState | undefined>; /** * Create an AltairPanel instance for displaying content in the app based on the panel name. * The panel names are defined in the plugin options when the plugin is initialized. * * This returns the unique id of the panel. */ createPanel(panelName: string, options?: CreatePanelOptions): Promise<string | undefined>; /** * Destroy a panel based on its unique id */ destroyPanel(panelId: string): Promise<void>; /** * Adds an action button in the app to perform an action. * The action is defined by the plugin and is executed when the button is clicked. * * This returns the unique id of the action. */ createAction(options: CreateActionOptions): Promise<string | undefined>; /** * Destroy an action based on its unique id */ destroyAction(actionId: string): Promise<void>; /** * Check if the app is running in an Electron environment */ isElectron(): Promise<boolean>; /** * Create a new window in the app with the given data */ createWindow(data: ExportWindowState): Promise<void>; /** * Set the query in the app for the given window */ setQuery(windowId: string, query: string): Promise<void>; /** * Set the variables in the app for the given window */ setVariables(windowId: string, variables: string): Promise<void>; /** * Add a header in the app for the given window */ setHeader(windowId: string, key: string, value: string): Promise<void>; /** * Set the endpoint in the app for the given window */ setEndpoint(windowId: string, url: string): Promise<void>; /** * Subscribe to an event in the app to perform an action within the plugin */ on<E extends PluginEvent>(event: E, callback: PluginEventCallback<E>): { unsubscribe: () => void; }; /** * Remove all the event listeners */ off(): void; /** * Add a custom theme to Altair's theme registry which can later be used */ addTheme(name: string, theme: ICustomTheme): Promise<void>; /** * Enable a theme in the app */ enableTheme(name: string, darkMode?: boolean): Promise<void>; getUserInfo(): Promise<PluginUserInfo | undefined>; getAvailableCredits(): Promise<IAvailableCredits | undefined>; getActiveAiSession(): Promise<ISession | undefined>; createAiSession(): Promise<ISession | undefined>; getAiSessionMessages(sessionId: string): Promise<IMessage[] | undefined>; sendMessageToAiSession(sessionId: string, message: ISendMessageDto): Promise<{ response: string; } | undefined>; rateAiSessionMessage(sessionId: string, messageId: string, rating: number): Promise<IMessage | undefined>; } //# sourceMappingURL=context.d.ts.map