/// <reference types="node" />
/// <reference types="node" />
import { StatusCodes } from 'http-status-codes';
import { ChildProcess } from 'node:child_process';
import EventEmitter from 'node:events';
import { EPSError } from '../../../types/eps-error';
import { ConnectionData } from '../../../../shared/types/connection-data';
import { type SecretsType } from '../../../../shared/types/secrets-type';
import { ExtractApiResponse } from '../../../types/extract-api-response';
import { SchemaDoneExtractorMessage } from '../../../types/extractor-message';
export type ExtractHandlerRequest = {
    tacoPath: string;
    connectorClass: string;
    connectionId: string;
    secrets?: SecretsType;
    connectionData: ConnectionData;
};
export type ExtractResponse = {
    httpStatusCode: StatusCodes;
    response: ExtractApiResponse | EPSError;
};
export declare function validateConnectionData(body: unknown): asserts body is ConnectionData;
export declare function handleExtract(extractorLaunchedEvent: EventEmitter, extractHandlerRequest: ExtractHandlerRequest): Promise<ExtractResponse>;
/**
 * Wait for the extractor process to send the message to EPS.
 * The function will settle the promise on the first (known) message sent from extractor.
 */
export declare function waitForExtractorMessage(extractorProcess: ChildProcess, connectionId: string): Promise<SchemaDoneExtractorMessage>;
