Files
Termix/src/types/electron.d.ts
T

207 lines
5.2 KiB
TypeScript
Raw Normal View History

+7
2025-11-05 10:36:16 -06:00
interface ServerConfig {
serverUrl?: string;
2026-06-04 15:16:53 -04:00
allowInvalidCertificate?: boolean;
+7
2025-11-05 10:36:16 -06:00
[key: string]: unknown;
}
interface ConnectionTestResult {
success: boolean;
error?: string;
[key: string]: unknown;
}
interface DialogOptions {
title?: string;
defaultPath?: string;
buttonLabel?: string;
filters?: Array<{ name: string; extensions: string[] }>;
properties?: string[];
[key: string]: unknown;
}
interface DialogResult {
canceled: boolean;
filePath?: string;
filePaths?: string[];
[key: string]: unknown;
}
2025-10-01 15:40:10 -05:00
export interface ElectronAPI {
getAppVersion: () => Promise<string>;
getPlatform: () => Promise<string>;
+5
2026-08-19 14:12:06 -05:00
openNativeRdp: (options: {
host: string;
port?: number;
username?: string;
domain?: string;
}) => Promise<{ success: boolean; error?: string }>;
2026-06-29 13:28:26 -05:00
getSetting?: (key: string) => Promise<string | null | undefined>;
setSetting?: (key: string, value: string) => Promise<void>;
2025-10-01 15:40:10 -05:00
+7
2025-11-05 10:36:16 -06:00
getServerConfig: () => Promise<ServerConfig>;
saveServerConfig: (config: ServerConfig) => Promise<{ success: boolean }>;
2026-08-22 19:47:40 -05:00
testServerConnection: (
serverUrl: string,
allowInvalidCertificate?: boolean,
) => Promise<ConnectionTestResult>;
2026-05-06 15:12:07 -05:00
getC2STunnelConfig: () => Promise<unknown[]>;
saveC2STunnelConfig: (
config: unknown[],
) => Promise<{ success: boolean; error?: string }>;
checkLocalPortAvailable: (
host: string,
port: number,
) => Promise<{ available: boolean; error?: string }>;
getC2STunnelPresetDefaultName: () => Promise<string>;
startC2STunnel: (
tunnel: unknown,
index: number,
) => Promise<{ success: boolean; tunnelName?: string; error?: string }>;
testC2STunnel: (
tunnel: unknown,
index: number,
) => Promise<{ success: boolean; message?: string; error?: string }>;
stopC2STunnel: (
tunnelName: string,
) => Promise<{ success: boolean; error?: string }>;
getC2STunnelStatuses: () => Promise<Record<string, unknown>>;
onC2STunnelStatuses?: (
callback: (statuses: Record<string, unknown>) => void,
) => () => void;
startC2SAutoStartTunnels: () => Promise<{
success: boolean;
started: number;
errors: string[];
}>;
+2
2026-07-26 18:47:27 -05:00
onRemoteSyncStatusChanged?: (
callback: (status: {
connected: boolean;
syncing: boolean;
lastSyncedAt: string | null;
lastError: string | null;
needsReauth: boolean;
}) => void,
) => () => void;
+5
2026-08-19 14:12:06 -05:00
onCloseActiveTab?: (callback: () => void) => () => void;
2026-05-06 15:12:07 -05:00
clearSessionCookies: () => Promise<void>;
getSessionCookie: (
name: string,
targetUrl?: string,
) => Promise<string | null>;
waitForSessionCookie: (
name: string,
targetUrl?: string,
previousValue?: string | null,
timeoutMs?: number,
) => Promise<{ success: boolean; value?: string; error?: string }>;
2025-10-01 15:40:10 -05:00
+7
2025-11-05 10:36:16 -06:00
showSaveDialog: (options: DialogOptions) => Promise<DialogResult>;
showOpenDialog: (options: DialogOptions) => Promise<DialogResult>;
2025-10-01 15:40:10 -05:00
2026-06-29 13:28:26 -05:00
openExternalEditor: (fileData: {
fileName: string;
content: string;
encoding?: "utf8" | "base64";
editorPath?: string | null;
}) => Promise<{
success: boolean;
editId?: string;
path?: string;
error?: string;
}>;
closeExternalEditor: (editId: string) => Promise<{
success: boolean;
error?: string;
}>;
onExternalEditorSaved?: (
callback: (payload: {
editId: string;
content: string;
encoding: "utf8";
path: string;
}) => void,
) => () => void;
+7
2025-11-05 10:36:16 -06:00
onUpdateAvailable: (callback: () => void) => void;
onUpdateDownloaded: (callback: () => void) => void;
2025-10-01 15:40:10 -05:00
removeAllListeners: (channel: string) => void;
isElectron: boolean;
isDev: boolean;
+7
2025-11-05 10:36:16 -06:00
invoke: (channel: string, ...args: unknown[]) => Promise<unknown>;
2025-10-01 15:40:10 -05:00
createTempFile: (fileData: {
fileName: string;
content: string;
encoding?: "base64" | "utf8";
}) => Promise<{
success: boolean;
tempId?: string;
path?: string;
error?: string;
}>;
createTempFolder: (folderData: {
folderName: string;
files: Array<{
relativePath: string;
content: string;
encoding?: "base64" | "utf8";
}>;
}) => Promise<{
success: boolean;
tempId?: string;
path?: string;
error?: string;
}>;
startDragToDesktop: (dragData: {
tempId: string;
fileName: string;
}) => Promise<{
success: boolean;
error?: string;
}>;
cleanupTempFile: (tempId: string) => Promise<{
success: boolean;
error?: string;
}>;
+5
2026-08-19 14:12:06 -05:00
startLocalTerminal(dimensions: {
cols: number;
rows: number;
2026-08-22 19:47:40 -05:00
shell?: "default" | "wsl";
+5
2026-08-19 14:12:06 -05:00
}): Promise<{ sessionId: string; shell: string }>;
readyLocalTerminal(sessionId: string): Promise<boolean>;
writeLocalTerminal(sessionId: string, data: string): Promise<boolean>;
resizeLocalTerminal(
sessionId: string,
cols: number,
rows: number,
): Promise<boolean>;
closeLocalTerminal(sessionId: string): Promise<boolean>;
onLocalTerminalData(
sessionId: string,
callback: (data: string) => void,
): () => void;
onLocalTerminalExit(
sessionId: string,
callback: (exitCode: number) => void,
): () => void;
2025-10-01 15:40:10 -05:00
}
declare global {
interface Window {
electronAPI: ElectronAPI;
IS_ELECTRON: boolean;
+5
2026-03-08 18:02:14 -05:00
electronClipboard?: {
2026-05-06 15:12:07 -05:00
writeText(text: string): Promise<boolean>;
readText(): Promise<string>;
+5
2026-03-08 18:02:14 -05:00
};
2025-10-01 15:40:10 -05:00
}
}