import type { ExecutionSummaries, ExecutionEntity } from '@n8n/db';
import type { AnnotationVote, ExecutionStatus, IDataObject, WorkflowExecuteMode } from 'n8n-workflow';
import type { AuthenticatedRequest } from '../requests';
export declare namespace ExecutionRequest {
    namespace QueryParams {
        type GetMany = {
            filter: string;
            limit: string;
            lastId: string;
            firstId: string;
        };
        type GetOne = {
            unflattedResponse: 'true' | 'false';
        };
    }
    namespace BodyParams {
        type DeleteFilter = {
            deleteBefore?: Date;
            filters?: IDataObject;
            ids?: string[];
        };
    }
    namespace RouteParams {
        type ExecutionId = {
            id: ExecutionEntity['id'];
        };
    }
    type ExecutionUpdatePayload = {
        tags?: string[];
        vote?: AnnotationVote | null;
    };
    type GetMany = AuthenticatedRequest<{}, {}, {}, QueryParams.GetMany> & {
        rangeQuery: ExecutionSummaries.RangeQuery;
    };
    type GetOne = AuthenticatedRequest<RouteParams.ExecutionId, {}, {}, QueryParams.GetOne>;
    type Delete = AuthenticatedRequest<{}, {}, BodyParams.DeleteFilter>;
    type Retry = AuthenticatedRequest<RouteParams.ExecutionId, {}, {
        loadWorkflow: boolean;
    }, {}>;
    type Stop = AuthenticatedRequest<RouteParams.ExecutionId>;
    type Update = AuthenticatedRequest<RouteParams.ExecutionId, {}, ExecutionUpdatePayload, {}>;
}
export type StopResult = {
    mode: WorkflowExecuteMode;
    startedAt: Date;
    stoppedAt?: Date;
    finished: boolean;
    status: ExecutionStatus;
};
