import { AutomationClient } from "@atomist/automation-client/lib/automationClient";
import { Configuration } from "@atomist/automation-client/lib/configuration";
import { HandleCommand } from "@atomist/automation-client/lib/HandleCommand";
import { HandleEvent } from "@atomist/automation-client/lib/HandleEvent";
import { AutomationContextAware, HandlerContext } from "@atomist/automation-client/lib/HandlerContext";
import { AbstractRequestProcessor } from "@atomist/automation-client/lib/internal/transport/AbstractRequestProcessor";
import { CommandIncoming, EventIncoming } from "@atomist/automation-client/lib/internal/transport/RequestProcessor";
import { AutomationMetadata } from "@atomist/automation-client/lib/metadata/automationMetadata";
import { AutomationEventListener, AutomationEventListenerSupport } from "@atomist/automation-client/lib/server/AutomationEventListener";
import { AutomationServer } from "@atomist/automation-client/lib/server/AutomationServer";
import { AutomationMetadataProcessor } from "@atomist/automation-client/lib/spi/env/MetadataProcessor";
import { GraphClient } from "@atomist/automation-client/lib/spi/graph/GraphClient";
import { MessageClient } from "@atomist/automation-client/lib/spi/message/MessageClient";
import { Maker } from "@atomist/automation-client/lib/util/constructionUtils";
import { SoftwareDeliveryMachine } from "../../../../../api/machine/SoftwareDeliveryMachine";
export declare class GoalExecutionAutomationEventListener extends AutomationEventListenerSupport {
    private readonly sdm;
    constructor(sdm: SoftwareDeliveryMachine);
    startupSuccessful(client: AutomationClient): Promise<void>;
}
export declare class FilteringMetadataProcessor implements AutomationMetadataProcessor {
    private readonly allowedCommands;
    private readonly allowedEvents;
    constructor(allowedCommandHandlers: Array<Maker<HandleCommand<any>>>, allowedEventHandlers: Array<Maker<HandleEvent<any>>>);
    process<T extends AutomationMetadata>(metadata: T): T;
}
export declare class GoalExecutionRequestProcessor extends AbstractRequestProcessor {
    protected automations: AutomationServer;
    protected configuration: Configuration;
    protected listeners: AutomationEventListener[];
    private readonly graphClients;
    constructor(automations: AutomationServer, configuration: Configuration, listeners?: AutomationEventListener[]);
    protected createGraphClient(event: CommandIncoming | EventIncoming): GraphClient;
    protected createMessageClient(event: EventIncoming | CommandIncoming, context: AutomationContextAware): MessageClient;
    protected sendStatusMessage(payload: any, ctx: HandlerContext & AutomationContextAware): Promise<any>;
}
//# sourceMappingURL=goalExecution.d.ts.map