type LuraphOptionValue = string | boolean; interface LuraphOptionDependencies { readonly [target: string]: readonly LuraphOptionValue[]; } interface LuraphOptionInfo { readonly name: string; readonly description: string; readonly tier: "CUSTOMER_ONLY" | "PREMIUM_ONLY" | "ADMIN_ONLY"; readonly type: "CHECKBOX" | "DROPDOWN" | "TEXT"; readonly choices: readonly string[]; readonly required: boolean; readonly dependencies?: LuraphOptionDependencies; } interface LuraphNode { readonly cpuUsage: number; readonly options: { readonly [key: string]: LuraphOptionInfo; }; } interface LuraphOptionList { [key: string]: LuraphOptionValue; } interface LuraphError { readonly param?: string; readonly message: string; } declare class LuraphException extends Error { readonly errors: LuraphError[]; constructor(payload: LuraphError[]); } declare class Luraph { private readonly apiKey; constructor(apiKey: string); private doRequest; getNodes(): Promise<{ nodes: { [nodeId: string]: LuraphNode; }; recommendedId: string | null; }>; createNewJob(node: string, script: string, fileName: string, options: LuraphOptionList, useTokens?: boolean, enforceSettings?: boolean): Promise<{ jobId: string; }>; getJobStatus(jobId: string): Promise<{ success: true; error: null; } | { success: false; error: string; }>; downloadResult(jobId: string): Promise<{ data: any; fileName: string; }>; } export { Luraph, type LuraphError, LuraphException, type LuraphNode, type LuraphOptionDependencies, type LuraphOptionInfo, type LuraphOptionList, type LuraphOptionValue, Luraph as default };