import { ChildProcessWithoutNullStreams } from 'child_process';
import { Configuration, Environment } from './resources/configuration';
import { User, Credential } from './services/integrationsPlatform';
import * as CrawlerDriver from './services/crawlerDriver';
export declare enum Window {
    help = "help",
    config = "config",
    debugger = "debugger",
    process = "process",
    quit = "quit"
}
export declare function useWindowState(): {
    current: string;
};
export declare function useConfigurationState(): {
    current: Configuration;
    apiKey: string | undefined;
    environment: Environment;
    integrationId: number | undefined;
    credentialId: number | undefined;
    integrationUrl: string | undefined;
    credentialPayload: import("@hookstate/core").ImmutableObject<{
        [key: string]: unknown;
    }> | undefined;
    secretsPayload: import("@hookstate/core").ImmutableObject<{
        [key: string]: unknown;
    }> | undefined;
    spawnProcessCommand: string | undefined;
    graphRelativeUrl: string | undefined;
    credentialAccountRelativeUrl: string | undefined;
    webhookParsingRelativeUrl: string | undefined;
    webhookSubscriptionsRelativeUrl: string | undefined;
    webhookAcknowledgeRelativeUrl: string | undefined;
    interactive: boolean | undefined;
    verbose: boolean | undefined;
    startingPath: string | undefined;
    startingOperation: import("./services/crawler").Operation | undefined;
    outputFilePath: string | undefined;
    stepCheckKeys: import("@hookstate/core").ImmutableArray<string> | undefined;
    operationCollectionItemsPerPage: number | undefined;
    operationCollectionFollowNextPages: boolean | undefined;
    readOnly: boolean | undefined;
    timeout: number | undefined;
};
export interface Status {
    apiKey: boolean;
    environment: boolean;
    integration: boolean;
    credential: boolean;
}
export declare function useStatusState(): {
    current: Status;
    apiKey: boolean;
    environment: boolean;
    integration: boolean;
    credential: boolean;
};
export declare function useProfileState(): {
    current: User | null;
};
export declare function useIntegrationState(): {
    current: import("@hookstate/core").ImmutableObject<import("@unito/integrations-platform-client").Integration> | null;
};
export declare function useIntegrationsState(): {
    current: import("@hookstate/core").ImmutableArray<import("@unito/integrations-platform-client").IntegrationSummary>;
};
export declare function useCredentialState(): {
    current: Credential | null;
};
export declare function useCredentialsState(): {
    current: import("@hookstate/core").ImmutableArray<import("@unito/integrations-platform-client").Credential>;
};
export interface IntegrationProcess {
    process: ChildProcessWithoutNullStreams | null;
    output: string[];
}
export declare function useIntegrationProcessState(): {
    process: ChildProcessWithoutNullStreams | null;
    readonly output: import("@hookstate/core").ImmutableArray<string>;
    addLine(line: string): void;
};
export interface Debugger {
    crawlerDriver: CrawlerDriver.Instance | null;
    steps: CrawlerDriver.Step[];
    selected: CrawlerDriver.Step | undefined;
    selectedStack: CrawlerDriver.Step | undefined;
    selectedPaneIndex: number | undefined;
    inspectMode: InspectMode;
    crawlMode: CrawlMode;
    crawlModeTick: number;
    startingPath: string | undefined;
    startingOperation: CrawlerDriver.Operation | undefined;
    stepCheckKeys: string[] | undefined;
}
export interface RestartDebuggerOptions {
    credentialId?: number;
    integrationUrl?: string;
    graphRelativeUrl?: string;
    credentialAccountRelativeUrl?: string;
    webhookParsingRelativeUrl?: string;
    webhookSubscriptionsRelativeUrl?: string;
    webhookAcknowledgeRelativeUrl?: string;
    credentialPayload?: Record<string, unknown>;
    secretsPayload?: Record<string, unknown>;
    payloadIn?: unknown;
    startingPath?: string;
    startingOperation?: CrawlerDriver.Operation;
    stepCheckKeys?: string[];
}
export declare enum Pane {
    None = "none",
    Calls = "calls",
    Stack = "stack",
    Inspect = "inspect",
    Output = "output"
}
export declare enum CrawlMode {
    None = "none",
    StopOnError = "stopOnError",
    All = "all"
}
export declare enum InspectMode {
    Payloads = "payloads",
    Headers = "headers",
    Errors = "errors",
    Warnings = "warnings"
}
export declare function useDebuggerState(): {
    crawlerDriver: import("@hookstate/core").ImmutableObject<CrawlerDriver.Instance> | null;
    inspectMode: InspectMode;
    readonly steps: import("@hookstate/core").ImmutableArray<import("./services/crawler").Step>;
    selected: CrawlerDriver.Step | undefined;
    selectedStack: CrawlerDriver.Step | undefined;
    selectedPane: Pane;
    selectedPaneIndex: number | undefined;
    crawlMode: CrawlMode;
    crawlModeTick: number;
    startingPath: string | undefined;
    startingOperation: import("./services/crawler").Operation | undefined;
    stepCheckKeys: import("@hookstate/core").ImmutableArray<string> | undefined;
    clearSteps(): void;
    addStep(step: CrawlerDriver.Step): void;
    popStep(): void;
    nextPaneIndex(): void;
    stepOne(): Promise<import("./services/crawler").Step | undefined>;
    crawlWithStop(): void;
    crawlWithoutStop(): void;
    pause(): void;
    restart(options: RestartDebuggerOptions): Promise<void>;
    goto(options: RestartDebuggerOptions): Promise<void>;
    retrySelected(): Promise<void>;
};
