altair-graphql-core
Version:
Several of the core logic for altair graphql client
97 lines • 3.74 kB
TypeScript
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