import type { AnyModel, Environment, Folder, GrpcRequest, HttpRequest, HttpResponse, WebsocketRequest, Workspace } from "./gen_models";
import type { JsonValue } from "./serde_json/JsonValue";
export type BootRequest = {
    dir: string;
    watch: boolean;
};
export type CallFolderActionArgs = {
    folder: Folder;
};
export type CallFolderActionRequest = {
    index: number;
    pluginRefId: string;
    args: CallFolderActionArgs;
};
export type CallGrpcRequestActionArgs = {
    grpcRequest: GrpcRequest;
    protoFiles: Array<string>;
};
export type CallGrpcRequestActionRequest = {
    index: number;
    pluginRefId: string;
    args: CallGrpcRequestActionArgs;
};
export type CallHttpAuthenticationActionArgs = {
    contextId: string;
    values: {
        [key in string]?: JsonPrimitive;
    };
};
export type CallHttpAuthenticationActionRequest = {
    index: number;
    pluginRefId: string;
    args: CallHttpAuthenticationActionArgs;
};
export type CallHttpAuthenticationRequest = {
    contextId: string;
    values: {
        [key in string]?: JsonPrimitive;
    };
    method: string;
    url: string;
    headers: Array<HttpHeader>;
};
export type CallHttpAuthenticationResponse = {
    /**
     * HTTP headers to add to the request. Existing headers will be replaced, while
     * new headers will be added.
     */
    setHeaders?: Array<HttpHeader>;
    /**
     * Query parameters to add to the request. Existing params will be replaced, while
     * new params will be added.
     */
    setQueryParameters?: Array<HttpHeader>;
};
export type CallHttpRequestActionArgs = {
    httpRequest: HttpRequest;
};
export type CallHttpRequestActionRequest = {
    index: number;
    pluginRefId: string;
    args: CallHttpRequestActionArgs;
};
export type CallTemplateFunctionArgs = {
    purpose: RenderPurpose;
    values: {
        [key in string]?: JsonPrimitive;
    };
};
export type CallTemplateFunctionRequest = {
    name: string;
    args: CallTemplateFunctionArgs;
};
export type CallTemplateFunctionResponse = {
    value: string | null;
    error?: string;
};
export type CallWebsocketRequestActionArgs = {
    websocketRequest: WebsocketRequest;
};
export type CallWebsocketRequestActionRequest = {
    index: number;
    pluginRefId: string;
    args: CallWebsocketRequestActionArgs;
};
export type CallWorkspaceActionArgs = {
    workspace: Workspace;
};
export type CallWorkspaceActionRequest = {
    index: number;
    pluginRefId: string;
    args: CallWorkspaceActionArgs;
};
export type CloseWindowRequest = {
    label: string;
};
export type Color = "primary" | "secondary" | "info" | "success" | "notice" | "warning" | "danger";
export type CompletionOptionType = "constant" | "variable";
export type Content = {
    "type": "text";
    content: string;
} | {
    "type": "markdown";
    content: string;
};
export type CopyTextRequest = {
    text: string;
};
export type DeleteKeyValueRequest = {
    key: string;
};
export type DeleteKeyValueResponse = {
    deleted: boolean;
};
export type DeleteModelRequest = {
    model: string;
    id: string;
};
export type DeleteModelResponse = {
    model: AnyModel;
};
export type DialogSize = "sm" | "md" | "lg" | "full" | "dynamic";
export type EditorLanguage = "text" | "javascript" | "json" | "html" | "xml" | "graphql" | "markdown" | "c" | "clojure" | "csharp" | "go" | "http" | "java" | "kotlin" | "objective_c" | "ocaml" | "php" | "powershell" | "python" | "r" | "ruby" | "shell" | "swift";
export type EmptyPayload = {};
export type ErrorResponse = {
    error: string;
};
export type ExportHttpRequestRequest = {
    httpRequest: HttpRequest;
};
export type ExportHttpRequestResponse = {
    content: string;
};
export type FileFilter = {
    name: string;
    /**
     * File extensions to require
     */
    extensions: Array<string>;
};
export type FilterRequest = {
    content: string;
    filter: string;
};
export type FilterResponse = {
    content: string;
    error?: string;
};
export type FindHttpResponsesRequest = {
    requestId: string;
    limit?: number;
};
export type FindHttpResponsesResponse = {
    httpResponses: Array<HttpResponse>;
};
export type FolderAction = {
    label: string;
    icon?: Icon;
};
export type FormInput = {
    "type": "text";
} & FormInputText | {
    "type": "editor";
} & FormInputEditor | {
    "type": "select";
} & FormInputSelect | {
    "type": "checkbox";
} & FormInputCheckbox | {
    "type": "file";
} & FormInputFile | {
    "type": "http_request";
} & FormInputHttpRequest | {
    "type": "accordion";
} & FormInputAccordion | {
    "type": "h_stack";
} & FormInputHStack | {
    "type": "banner";
} & FormInputBanner | {
    "type": "markdown";
} & FormInputMarkdown | {
    "type": "key_value";
} & FormInputKeyValue;
export type FormInputAccordion = {
    label: string;
    inputs?: Array<FormInput>;
    hidden?: boolean;
};
export type FormInputBanner = {
    inputs?: Array<FormInput>;
    hidden?: boolean;
    color?: Color;
};
export type FormInputBase = {
    /**
     * The name of the input. The value will be stored at this object attribute in the resulting data
     */
    name: string;
    /**
     * Whether this input is visible for the given configuration. Use this to
     * make branching forms.
     */
    hidden?: boolean;
    /**
     * Whether the user must fill in the argument
     */
    optional?: boolean;
    /**
     * The label of the input
     */
    label?: string;
    /**
     * Visually hide the label of the input
     */
    hideLabel?: boolean;
    /**
     * The default value
     */
    defaultValue?: string;
    disabled?: boolean;
    /**
     * Longer description of the input, likely shown in a tooltip
     */
    description?: string;
};
export type FormInputCheckbox = {
    /**
     * The name of the input. The value will be stored at this object attribute in the resulting data
     */
    name: string;
    /**
     * Whether this input is visible for the given configuration. Use this to
     * make branching forms.
     */
    hidden?: boolean;
    /**
     * Whether the user must fill in the argument
     */
    optional?: boolean;
    /**
     * The label of the input
     */
    label?: string;
    /**
     * Visually hide the label of the input
     */
    hideLabel?: boolean;
    /**
     * The default value
     */
    defaultValue?: string;
    disabled?: boolean;
    /**
     * Longer description of the input, likely shown in a tooltip
     */
    description?: string;
};
export type FormInputEditor = {
    /**
     * Placeholder for the text input
     */
    placeholder?: string | null;
    /**
     * Don't show the editor gutter (line numbers, folds, etc.)
     */
    hideGutter?: boolean;
    /**
     * Language for syntax highlighting
     */
    language?: EditorLanguage;
    readOnly?: boolean;
    /**
     * Fixed number of visible rows
     */
    rows?: number;
    completionOptions?: Array<GenericCompletionOption>;
    /**
     * The name of the input. The value will be stored at this object attribute in the resulting data
     */
    name: string;
    /**
     * Whether this input is visible for the given configuration. Use this to
     * make branching forms.
     */
    hidden?: boolean;
    /**
     * Whether the user must fill in the argument
     */
    optional?: boolean;
    /**
     * The label of the input
     */
    label?: string;
    /**
     * Visually hide the label of the input
     */
    hideLabel?: boolean;
    /**
     * The default value
     */
    defaultValue?: string;
    disabled?: boolean;
    /**
     * Longer description of the input, likely shown in a tooltip
     */
    description?: string;
};
export type FormInputFile = {
    /**
     * The title of the file selection window
     */
    title: string;
    /**
     * Allow selecting multiple files
     */
    multiple?: boolean;
    directory?: boolean;
    defaultPath?: string;
    filters?: Array<FileFilter>;
    /**
     * The name of the input. The value will be stored at this object attribute in the resulting data
     */
    name: string;
    /**
     * Whether this input is visible for the given configuration. Use this to
     * make branching forms.
     */
    hidden?: boolean;
    /**
     * Whether the user must fill in the argument
     */
    optional?: boolean;
    /**
     * The label of the input
     */
    label?: string;
    /**
     * Visually hide the label of the input
     */
    hideLabel?: boolean;
    /**
     * The default value
     */
    defaultValue?: string;
    disabled?: boolean;
    /**
     * Longer description of the input, likely shown in a tooltip
     */
    description?: string;
};
export type FormInputHStack = {
    inputs?: Array<FormInput>;
    hidden?: boolean;
};
export type FormInputHttpRequest = {
    /**
     * The name of the input. The value will be stored at this object attribute in the resulting data
     */
    name: string;
    /**
     * Whether this input is visible for the given configuration. Use this to
     * make branching forms.
     */
    hidden?: boolean;
    /**
     * Whether the user must fill in the argument
     */
    optional?: boolean;
    /**
     * The label of the input
     */
    label?: string;
    /**
     * Visually hide the label of the input
     */
    hideLabel?: boolean;
    /**
     * The default value
     */
    defaultValue?: string;
    disabled?: boolean;
    /**
     * Longer description of the input, likely shown in a tooltip
     */
    description?: string;
};
export type FormInputKeyValue = {
    /**
     * The name of the input. The value will be stored at this object attribute in the resulting data
     */
    name: string;
    /**
     * Whether this input is visible for the given configuration. Use this to
     * make branching forms.
     */
    hidden?: boolean;
    /**
     * Whether the user must fill in the argument
     */
    optional?: boolean;
    /**
     * The label of the input
     */
    label?: string;
    /**
     * Visually hide the label of the input
     */
    hideLabel?: boolean;
    /**
     * The default value
     */
    defaultValue?: string;
    disabled?: boolean;
    /**
     * Longer description of the input, likely shown in a tooltip
     */
    description?: string;
};
export type FormInputMarkdown = {
    content: string;
    hidden?: boolean;
};
export type FormInputSelect = {
    /**
     * The options that will be available in the select input
     */
    options: Array<FormInputSelectOption>;
    /**
     * The name of the input. The value will be stored at this object attribute in the resulting data
     */
    name: string;
    /**
     * Whether this input is visible for the given configuration. Use this to
     * make branching forms.
     */
    hidden?: boolean;
    /**
     * Whether the user must fill in the argument
     */
    optional?: boolean;
    /**
     * The label of the input
     */
    label?: string;
    /**
     * Visually hide the label of the input
     */
    hideLabel?: boolean;
    /**
     * The default value
     */
    defaultValue?: string;
    disabled?: boolean;
    /**
     * Longer description of the input, likely shown in a tooltip
     */
    description?: string;
};
export type FormInputSelectOption = {
    label: string;
    value: string;
};
export type FormInputText = {
    /**
     * Placeholder for the text input
     */
    placeholder?: string | null;
    /**
     * Placeholder for the text input
     */
    password?: boolean;
    /**
     * Whether to allow newlines in the input, like a <textarea/>
     */
    multiLine?: boolean;
    completionOptions?: Array<GenericCompletionOption>;
    /**
     * The name of the input. The value will be stored at this object attribute in the resulting data
     */
    name: string;
    /**
     * Whether this input is visible for the given configuration. Use this to
     * make branching forms.
     */
    hidden?: boolean;
    /**
     * Whether the user must fill in the argument
     */
    optional?: boolean;
    /**
     * The label of the input
     */
    label?: string;
    /**
     * Visually hide the label of the input
     */
    hideLabel?: boolean;
    /**
     * The default value
     */
    defaultValue?: string;
    disabled?: boolean;
    /**
     * Longer description of the input, likely shown in a tooltip
     */
    description?: string;
};
export type GenericCompletionOption = {
    label: string;
    detail?: string;
    info?: string;
    type?: CompletionOptionType;
    boost?: number;
};
export type GetCookieValueRequest = {
    name: string;
};
export type GetCookieValueResponse = {
    value: string | null;
};
export type GetFolderActionsResponse = {
    actions: Array<FolderAction>;
    pluginRefId: string;
};
export type GetGrpcRequestActionsResponse = {
    actions: Array<GrpcRequestAction>;
    pluginRefId: string;
};
export type GetHttpAuthenticationConfigRequest = {
    contextId: string;
    values: {
        [key in string]?: JsonPrimitive;
    };
};
export type GetHttpAuthenticationConfigResponse = {
    args: Array<FormInput>;
    pluginRefId: string;
    actions?: Array<HttpAuthenticationAction>;
};
export type GetHttpAuthenticationSummaryResponse = {
    name: string;
    label: string;
    shortLabel: string;
};
export type GetHttpRequestActionsResponse = {
    actions: Array<HttpRequestAction>;
    pluginRefId: string;
};
export type GetHttpRequestByIdRequest = {
    id: string;
};
export type GetHttpRequestByIdResponse = {
    httpRequest: HttpRequest | null;
};
export type GetKeyValueRequest = {
    key: string;
};
export type GetKeyValueResponse = {
    value?: string;
};
export type GetTemplateFunctionConfigRequest = {
    contextId: string;
    name: string;
    values: {
        [key in string]?: JsonPrimitive;
    };
};
export type GetTemplateFunctionConfigResponse = {
    function: TemplateFunction;
    pluginRefId: string;
};
export type GetTemplateFunctionSummaryResponse = {
    functions: Array<TemplateFunction>;
    pluginRefId: string;
};
export type GetThemesRequest = Record<string, never>;
export type GetThemesResponse = {
    themes: Array<Theme>;
};
export type GetWebsocketRequestActionsResponse = {
    actions: Array<WebsocketRequestAction>;
    pluginRefId: string;
};
export type GetWorkspaceActionsResponse = {
    actions: Array<WorkspaceAction>;
    pluginRefId: string;
};
export type GrpcRequestAction = {
    label: string;
    icon?: Icon;
};
export type HttpAuthenticationAction = {
    label: string;
    icon?: Icon;
};
export type HttpHeader = {
    name: string;
    value: string;
};
export type HttpRequestAction = {
    label: string;
    icon?: Icon;
};
export type Icon = "alert_triangle" | "check" | "check_circle" | "chevron_down" | "copy" | "info" | "pin" | "search" | "trash" | "_unknown";
export type ImportRequest = {
    content: string;
};
export type ImportResources = {
    workspaces: Array<Workspace>;
    environments: Array<Environment>;
    folders: Array<Folder>;
    httpRequests: Array<HttpRequest>;
    grpcRequests: Array<GrpcRequest>;
    websocketRequests: Array<WebsocketRequest>;
};
export type ImportResponse = {
    resources: ImportResources;
};
export type InternalEvent = {
    id: string;
    pluginRefId: string;
    pluginName: string;
    replyId: string | null;
    context: PluginContext;
    payload: InternalEventPayload;
};
export type InternalEventPayload = {
    "type": "boot_request";
} & BootRequest | {
    "type": "boot_response";
} | {
    "type": "reload_response";
} & ReloadResponse | {
    "type": "terminate_request";
} | {
    "type": "terminate_response";
} | {
    "type": "import_request";
} & ImportRequest | {
    "type": "import_response";
} & ImportResponse | {
    "type": "filter_request";
} & FilterRequest | {
    "type": "filter_response";
} & FilterResponse | {
    "type": "export_http_request_request";
} & ExportHttpRequestRequest | {
    "type": "export_http_request_response";
} & ExportHttpRequestResponse | {
    "type": "send_http_request_request";
} & SendHttpRequestRequest | {
    "type": "send_http_request_response";
} & SendHttpRequestResponse | {
    "type": "list_cookie_names_request";
} & ListCookieNamesRequest | {
    "type": "list_cookie_names_response";
} & ListCookieNamesResponse | {
    "type": "get_cookie_value_request";
} & GetCookieValueRequest | {
    "type": "get_cookie_value_response";
} & GetCookieValueResponse | {
    "type": "get_http_request_actions_request";
} & EmptyPayload | {
    "type": "get_http_request_actions_response";
} & GetHttpRequestActionsResponse | {
    "type": "call_http_request_action_request";
} & CallHttpRequestActionRequest | {
    "type": "get_websocket_request_actions_request";
} & EmptyPayload | {
    "type": "get_websocket_request_actions_response";
} & GetWebsocketRequestActionsResponse | {
    "type": "call_websocket_request_action_request";
} & CallWebsocketRequestActionRequest | {
    "type": "get_workspace_actions_request";
} & EmptyPayload | {
    "type": "get_workspace_actions_response";
} & GetWorkspaceActionsResponse | {
    "type": "call_workspace_action_request";
} & CallWorkspaceActionRequest | {
    "type": "get_folder_actions_request";
} & EmptyPayload | {
    "type": "get_folder_actions_response";
} & GetFolderActionsResponse | {
    "type": "call_folder_action_request";
} & CallFolderActionRequest | {
    "type": "get_grpc_request_actions_request";
} & EmptyPayload | {
    "type": "get_grpc_request_actions_response";
} & GetGrpcRequestActionsResponse | {
    "type": "call_grpc_request_action_request";
} & CallGrpcRequestActionRequest | {
    "type": "get_template_function_summary_request";
} & EmptyPayload | {
    "type": "get_template_function_summary_response";
} & GetTemplateFunctionSummaryResponse | {
    "type": "get_template_function_config_request";
} & GetTemplateFunctionConfigRequest | {
    "type": "get_template_function_config_response";
} & GetTemplateFunctionConfigResponse | {
    "type": "call_template_function_request";
} & CallTemplateFunctionRequest | {
    "type": "call_template_function_response";
} & CallTemplateFunctionResponse | {
    "type": "get_http_authentication_summary_request";
} & EmptyPayload | {
    "type": "get_http_authentication_summary_response";
} & GetHttpAuthenticationSummaryResponse | {
    "type": "get_http_authentication_config_request";
} & GetHttpAuthenticationConfigRequest | {
    "type": "get_http_authentication_config_response";
} & GetHttpAuthenticationConfigResponse | {
    "type": "call_http_authentication_request";
} & CallHttpAuthenticationRequest | {
    "type": "call_http_authentication_response";
} & CallHttpAuthenticationResponse | {
    "type": "call_http_authentication_action_request";
} & CallHttpAuthenticationActionRequest | {
    "type": "call_http_authentication_action_response";
} & EmptyPayload | {
    "type": "copy_text_request";
} & CopyTextRequest | {
    "type": "copy_text_response";
} & EmptyPayload | {
    "type": "render_http_request_request";
} & RenderHttpRequestRequest | {
    "type": "render_http_request_response";
} & RenderHttpRequestResponse | {
    "type": "render_grpc_request_request";
} & RenderGrpcRequestRequest | {
    "type": "render_grpc_request_response";
} & RenderGrpcRequestResponse | {
    "type": "template_render_request";
} & TemplateRenderRequest | {
    "type": "template_render_response";
} & TemplateRenderResponse | {
    "type": "get_key_value_request";
} & GetKeyValueRequest | {
    "type": "get_key_value_response";
} & GetKeyValueResponse | {
    "type": "set_key_value_request";
} & SetKeyValueRequest | {
    "type": "set_key_value_response";
} & SetKeyValueResponse | {
    "type": "delete_key_value_request";
} & DeleteKeyValueRequest | {
    "type": "delete_key_value_response";
} & DeleteKeyValueResponse | {
    "type": "open_window_request";
} & OpenWindowRequest | {
    "type": "window_navigate_event";
} & WindowNavigateEvent | {
    "type": "window_close_event";
} | {
    "type": "close_window_request";
} & CloseWindowRequest | {
    "type": "open_external_url_request";
} & OpenExternalUrlRequest | {
    "type": "open_external_url_response";
} & EmptyPayload | {
    "type": "show_toast_request";
} & ShowToastRequest | {
    "type": "show_toast_response";
} & EmptyPayload | {
    "type": "prompt_text_request";
} & PromptTextRequest | {
    "type": "prompt_text_response";
} & PromptTextResponse | {
    "type": "prompt_form_request";
} & PromptFormRequest | {
    "type": "prompt_form_response";
} & PromptFormResponse | {
    "type": "window_info_request";
} & WindowInfoRequest | {
    "type": "window_info_response";
} & WindowInfoResponse | {
    "type": "list_open_workspaces_request";
} & ListOpenWorkspacesRequest | {
    "type": "list_open_workspaces_response";
} & ListOpenWorkspacesResponse | {
    "type": "get_http_request_by_id_request";
} & GetHttpRequestByIdRequest | {
    "type": "get_http_request_by_id_response";
} & GetHttpRequestByIdResponse | {
    "type": "find_http_responses_request";
} & FindHttpResponsesRequest | {
    "type": "find_http_responses_response";
} & FindHttpResponsesResponse | {
    "type": "list_http_requests_request";
} & ListHttpRequestsRequest | {
    "type": "list_http_requests_response";
} & ListHttpRequestsResponse | {
    "type": "list_folders_request";
} & ListFoldersRequest | {
    "type": "list_folders_response";
} & ListFoldersResponse | {
    "type": "upsert_model_request";
} & UpsertModelRequest | {
    "type": "upsert_model_response";
} & UpsertModelResponse | {
    "type": "delete_model_request";
} & DeleteModelRequest | {
    "type": "delete_model_response";
} & DeleteModelResponse | {
    "type": "get_themes_request";
} & GetThemesRequest | {
    "type": "get_themes_response";
} & GetThemesResponse | {
    "type": "empty_response";
} & EmptyPayload | {
    "type": "error_response";
} & ErrorResponse;
export type JsonPrimitive = string | number | boolean | null;
export type ListCookieNamesRequest = {};
export type ListCookieNamesResponse = {
    names: Array<string>;
};
export type ListFoldersRequest = {};
export type ListFoldersResponse = {
    folders: Array<Folder>;
};
export type ListHttpRequestsRequest = {
    folderId?: string;
};
export type ListHttpRequestsResponse = {
    httpRequests: Array<HttpRequest>;
};
export type ListOpenWorkspacesRequest = Record<string, never>;
export type ListOpenWorkspacesResponse = {
    workspaces: Array<WorkspaceInfo>;
};
export type OpenExternalUrlRequest = {
    url: string;
};
export type OpenWindowRequest = {
    url: string;
    /**
     * Label for the window. If not provided, a random one will be generated.
     */
    label: string;
    title?: string;
    size?: WindowSize;
    dataDirKey?: string;
};
export type PluginContext = {
    id: string;
    label: string | null;
    workspaceId: string | null;
};
export type PromptFormRequest = {
    id: string;
    title: string;
    description?: string;
    inputs: Array<FormInput>;
    confirmText?: string;
    cancelText?: string;
    size?: DialogSize;
};
export type PromptFormResponse = {
    values: {
        [key in string]?: JsonPrimitive;
    } | null;
    done?: boolean;
};
export type PromptTextRequest = {
    id: string;
    title: string;
    label: string;
    description?: string;
    defaultValue?: string;
    placeholder?: string;
    /**
     * Text to add to the confirmation button
     */
    confirmText?: string;
    password?: boolean;
    /**
     * Text to add to the cancel button
     */
    cancelText?: string;
    /**
     * Require the user to enter a non-empty value
     */
    required?: boolean;
};
export type PromptTextResponse = {
    value: string | null;
};
export type ReloadResponse = {
    silent: boolean;
};
export type RenderGrpcRequestRequest = {
    grpcRequest: GrpcRequest;
    purpose: RenderPurpose;
};
export type RenderGrpcRequestResponse = {
    grpcRequest: GrpcRequest;
};
export type RenderHttpRequestRequest = {
    httpRequest: HttpRequest;
    purpose: RenderPurpose;
};
export type RenderHttpRequestResponse = {
    httpRequest: HttpRequest;
};
export type RenderPurpose = "send" | "preview";
export type SendHttpRequestRequest = {
    httpRequest: Partial<HttpRequest>;
};
export type SendHttpRequestResponse = {
    httpResponse: HttpResponse;
};
export type SetKeyValueRequest = {
    key: string;
    value: string;
};
export type SetKeyValueResponse = {};
export type ShowToastRequest = {
    message: string;
    color?: Color;
    icon?: Icon;
    timeout?: number;
};
export type TemplateFunction = {
    name: string;
    previewType?: TemplateFunctionPreviewType;
    description?: string;
    /**
     * Also support alternative names. This is useful for not breaking existing
     * tags when changing the `name` property
     */
    aliases?: Array<string>;
    args: Array<TemplateFunctionArg>;
    /**
     * A list of arg names to show in the inline preview. If not provided, none will be shown (for privacy reasons).
     */
    previewArgs?: Array<string>;
};
/**
 * Similar to FormInput, but contains
 */
export type TemplateFunctionArg = FormInput;
export type TemplateFunctionPreviewType = "live" | "click" | "none";
export type TemplateRenderRequest = {
    data: JsonValue;
    purpose: RenderPurpose;
};
export type TemplateRenderResponse = {
    data: JsonValue;
};
export type Theme = {
    /**
     * How the theme is identified. This should never be changed
     */
    id: string;
    /**
     * The friendly name of the theme to be displayed to the user
     */
    label: string;
    /**
     * Whether the theme will be used for dark or light appearance
     */
    dark: boolean;
    /**
     * The default top-level colors for the theme
     */
    base: ThemeComponentColors;
    /**
     * Optionally override theme for individual UI components for more control
     */
    components?: ThemeComponents;
};
export type ThemeComponentColors = {
    surface?: string;
    surfaceHighlight?: string;
    surfaceActive?: string;
    text?: string;
    textSubtle?: string;
    textSubtlest?: string;
    border?: string;
    borderSubtle?: string;
    borderFocus?: string;
    shadow?: string;
    backdrop?: string;
    selection?: string;
    primary?: string;
    secondary?: string;
    info?: string;
    success?: string;
    notice?: string;
    warning?: string;
    danger?: string;
};
export type ThemeComponents = {
    dialog?: ThemeComponentColors;
    menu?: ThemeComponentColors;
    toast?: ThemeComponentColors;
    sidebar?: ThemeComponentColors;
    responsePane?: ThemeComponentColors;
    appHeader?: ThemeComponentColors;
    button?: ThemeComponentColors;
    banner?: ThemeComponentColors;
    templateTag?: ThemeComponentColors;
    urlBar?: ThemeComponentColors;
    editor?: ThemeComponentColors;
    input?: ThemeComponentColors;
};
export type UpsertModelRequest = {
    model: AnyModel;
};
export type UpsertModelResponse = {
    model: AnyModel;
};
export type WebsocketRequestAction = {
    label: string;
    icon?: Icon;
};
export type WindowInfoRequest = {
    label: string;
};
export type WindowInfoResponse = {
    requestId: string | null;
    environmentId: string | null;
    workspaceId: string | null;
    label: string;
};
export type WindowNavigateEvent = {
    url: string;
};
export type WindowSize = {
    width: number;
    height: number;
};
export type WorkspaceAction = {
    label: string;
    icon?: Icon;
};
export type WorkspaceInfo = {
    id: string;
    name: string;
};
