import type { ExecutionEndingRequest, ExecutionInfo, ExecutionStartingRequest, ExecutionStatusResponse, ScenarioExecutionEndingRequest, ScenarioExecutionStartingRequest, SpecExecutionEndingRequest, SpecExecutionStartingRequest, StepExecutionEndingRequest, StepExecutionStartingRequest } from "../gen/messages_pb";
import type { HookMethod } from "../models/HookMethod";
import type { HookType } from "../models/HookType";
import { ExecutionProcessor } from "./ExecutionProcessor";
export type HookExectionRequest = ExecutionStartingRequest | SpecExecutionStartingRequest | ScenarioExecutionStartingRequest | StepExecutionStartingRequest | StepExecutionEndingRequest | ScenarioExecutionEndingRequest | SpecExecutionEndingRequest | ExecutionEndingRequest;
export declare abstract class HookExecutionProcessor extends ExecutionProcessor {
    protected abstract hookType: HookType;
    protected abstract getExecutionInfo(req: HookExectionRequest): ExecutionInfo;
    protected abstract getApplicableHooks(req: HookExectionRequest): Array<HookMethod>;
    process(req: HookExectionRequest): Promise<ExecutionStatusResponse>;
    private executeHooks;
    private getExecutionContext;
    private toSpec;
    private toScenario;
    private toStepInfo;
}
