import { StreamNodeSpecification, StreamNodeSpecificationInput, StreamNodeSpecificationInputType, StreamNodeSpecificationOutputType } from "."; import { HCloud } from "../../../Hcloud"; import { StreamResult } from "../space/event/stream"; import { StreamNodeResolvedInputs, StreamNodeResultError } from "../space/event/stream/node"; import { StreamNode } from "../space/execution"; export declare enum DuplicateFileOption { FAIL = "Fail", SKIP = "Skip", OVERWRITE = "Overwrite", RENAME_EXISTING = "Rename Existing", INCREMENT_NAME = "Increment Name" } export declare enum DuplicateFolderOption { FAIL = "Fail", SKIP = "Skip", RENAME_EXISTING = "Rename Existing", INCREMENT_NAME = "Increment Name" } export interface StreamNodeOutput { name: string | undefined; value: any; type: StreamNodeSpecificationOutputType; } export interface StreamNodeInput { name: string; originalValue?: any; value: any; type: StreamNodeSpecificationInputType; error: boolean; errorMessage: string; } export interface StreamNodeAdditionalConnector { name: string; targetUuid: string; } export interface StreamNodeResolvedInput extends StreamNodeResolvedInputs { originalValue: any; value: any; error: boolean; errorMessage: string; } export interface WaveGeneral { getNodeUuid(): string; resolveValue(value: string): unknown; getNodeSpecification(): StreamNodeSpecification; cancelExecution(): void; isCanceled(): boolean; getHcloudClient(): HCloud; getOrgName(): string; getSpaceName(): string; setStreamMessage(message: string): void; getAgentContext(): unknown; isDebug(): boolean; } export interface WaveLogger { getCurrentProgress(): number | undefined; getCurrentMessage(): string | undefined; updateProgress(progress: number): void; updateMessage(message: string): void; updateProgressAndMessage(progress: number, message: string): void; addNodeLog(logMessage: string): void; } export interface WaveInputs { getInputs(): StreamNodeResolvedInput[]; getInputByName(inputName: string): StreamNodeResolvedInput | undefined; getPreresolvedInputByName(inputName: string): StreamNodeSpecificationInput | undefined; getInputValueByInputName(inputName: string): any; getInputOriginalValueByInputName(inputName: string): any; } type FileFolderReturnObject = { finalPath: string; srcChecksum?: string; }; export interface WaveOutputs { getAllOutputs(): StreamNodeOutput[]; getOutputByName(outputName: string): StreamNodeOutput | undefined; getOutputValueByOutputName(outputName: string): any; setOutput(name: string, value: any, type?: StreamNodeSpecificationOutputType): void; executeAdditionalConnector(connectorName: string): Promise; } export interface WaveFileAndFolderHelper { createFile(filePath: string, duplicateFileOption: DuplicateFileOption): Promise; createFolder(folderPath: string, duplicateFolderOption: DuplicateFolderOption): Promise; copyFile(srcFilePath: string, destFilePath: string, duplicateFileOption: DuplicateFileOption, progressCallback?: (percent: number) => void, getSrcChecksum?: T, abortSignal?: AbortSignal): Promise; copyFolder(srcFolderPath: string, destFolderPath: string, duplicateFolderOption: DuplicateFolderOption, progressCallback?: (percent: number) => void, getSrcChecksum?: T, abortSignal?: AbortSignal): Promise; moveFile(srcFilePath: string, destFilePath: string, duplicateFileOption: DuplicateFileOption, progressCallback?: (percent: number) => void, getSrcChecksum?: T, abortSignal?: AbortSignal): Promise; moveFolder(srcFolderPath: string, destFolderPath: string, duplicateFolderOption: DuplicateFolderOption, progressCallback?: (percent: number) => void, getSrcChecksum?: T, abortSignal?: AbortSignal): Promise; renameFile(filePath: string, newName: string, duplicateFileOption: DuplicateFileOption): Promise; renameFolder(folderPath: string, newName: string, duplicateFolderOption: DuplicateFolderOption): Promise; deleteFile(filePath: string): Promise; deleteFolder(folderPath: string): Promise; getFileMd5Hash(filePath: string, signal?: AbortSignal): Promise; getFolderMd5Hash(folderPath: string, signal?: AbortSignal): Promise; } export interface WaveAxiosHelper { makeRequest(config: Record): Promise; convertRequestToCurl(config: Record): string; removeEmptyFields(obj: Record): Record; } export default interface Wave { general: WaveGeneral; logger: WaveLogger; inputs: WaveInputs; outputs: WaveOutputs; fileAndFolderHelper: WaveFileAndFolderHelper; axiosHelper: WaveAxiosHelper; } export declare abstract class StreamNodeError extends Error { protected code: number; protected detail: string; getCode(): number; getDetail(): string; getMessage(): string; toJson(): StreamNodeResultError; } export declare class StreamNodeGenericError extends StreamNodeError { constructor(err: Error, detail?: string); } export declare class StreamNodeInputMissingError extends StreamNodeError { constructor(input: string); } export declare class StreamNodeInputTypeError extends StreamNodeError { constructor(input: string, want: string, got: string); } export declare class StreamNodeNotFoundError extends StreamNodeError { constructor(detail: string); } export declare class StreamNodePathNotFoundError extends StreamNodeError { constructor(error: Error, detail: string); } export declare class StreamWildcardReplacerError extends StreamNodeError { constructor(error: Error, detail: string); } export declare class StreamNodePathTypeNotImplementedError extends StreamNodeError { constructor(error: Error, detail: string); } export declare class StreamDesignNotFoundError extends StreamNodeError { constructor(); } export declare class CatalogNotFoundError extends StreamNodeError { constructor(); setNode(streamNode: StreamNode): void; } export {};