import { Logger } from '@n8n/backend-common';
import type { IExecutionResponse } from '@n8n/db';
import { ExecutionRepository } from '@n8n/db';
import type express from 'express';
import { InstanceSettings } from 'n8n-core';
import { type IWorkflowBase, Workflow } from 'n8n-workflow';
import { WebhookService } from './webhook.service';
import type { IWebhookManager, IWebhookResponseCallbackData, WaitingWebhookRequest } from './webhook.types';
import { EventService } from '../events/event.service';
import { NodeTypes } from '../node-types';
export declare class WaitingWebhooks implements IWebhookManager {
    protected readonly logger: Logger;
    protected readonly nodeTypes: NodeTypes;
    private readonly executionRepository;
    private readonly webhookService;
    protected readonly instanceSettings: InstanceSettings;
    private readonly eventService;
    protected includeForms: boolean;
    constructor(logger: Logger, nodeTypes: NodeTypes, executionRepository: ExecutionRepository, webhookService: WebhookService, instanceSettings: InstanceSettings, eventService: EventService);
    findAccessControlOptions(): Promise<{
        allowedOrigins: string;
    }>;
    protected logReceivedWebhook(method: string, executionId: string): void;
    protected disableNode(execution: IExecutionResponse, _method?: string): void;
    private isSendAndWaitRequest;
    protected createWorkflow(workflowData: IWorkflowBase): Workflow;
    protected getExecution(executionId: string): Promise<IExecutionResponse | undefined>;
    private parseSignatureParam;
    protected validateToken(req: express.Request, execution: IExecutionResponse): {
        valid: boolean;
        webhookPath?: string;
    };
    protected validateSignature(req: express.Request): {
        valid: boolean;
        webhookPath?: string;
    };
    executeWebhook(req: WaitingWebhookRequest, res: express.Response): Promise<IWebhookResponseCallbackData>;
    private emitExecutionResumedEvent;
    protected getWebhookExecutionData({ execution, req, res, lastNodeExecuted, executionId, suffix, }: {
        execution: IExecutionResponse;
        req: WaitingWebhookRequest;
        res: express.Response;
        lastNodeExecuted: string;
        executionId: string;
        suffix?: string;
    }): Promise<IWebhookResponseCallbackData>;
}
