import * as events from "../../../aws-events";
import * as iam from "../../../aws-iam";
import * as sfn from "../../../aws-stepfunctions";
import { Construct } from 'constructs';
/**
 * (experimental) An entry to be sent to EventBridge.
 *
 * @see https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEventsRequestEntry.html
 * @experimental
 */
export interface EventBridgePutEventsEntry {
    /**
     * (experimental) The event body.
     *
     * Can either be provided as an object or as a JSON-serialized string
     *
     * @experimental
     * @example
     *
     * sfn.TaskInput.fromText('{"instance-id": "i-1234567890abcdef0", "state": "terminated"}')
     * sfn.TaskInput.fromObject({ Message: 'Hello from Step Functions' })
     * sfn.TaskInput.fromJsonPathAt('$.EventDetail')
     */
    readonly detail: sfn.TaskInput;
    /**
     * (experimental) Used along with the source field to help identify the fields and values expected in the detail field.
     *
     * For example, events by CloudTrail have detail type "AWS API Call via CloudTrail"
     *
     * @see https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html
     * @experimental
     */
    readonly detailType: string;
    /**
     * (experimental) The event bus the entry will be sent to.
     *
     * @default - event is sent to account's default event bus
     * @experimental
     */
    readonly eventBus?: events.IEventBus;
    /**
     * (experimental) The service or application that caused this event to be generated.
     *
     * @see https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html
     * @experimental
     * @example
     *
     * 'com.example.service'
     */
    readonly source: string;
}
/**
 * (experimental) Properties for sending events with PutEvents.
 *
 * @experimental
 */
export interface EventBridgePutEventsProps extends sfn.TaskStateBaseProps {
    /**
     * (experimental) The entries that will be sent (must be at least 1).
     *
     * @experimental
     */
    readonly entries: EventBridgePutEventsEntry[];
}
/**
 * (experimental) A StepFunctions Task to send events to an EventBridge event bus.
 *
 * @experimental
 */
export declare class EventBridgePutEvents extends sfn.TaskStateBase {
    private readonly props;
    private static readonly SUPPORTED_INTEGRATION_PATTERNS;
    /**
     * @experimental
     */
    protected readonly taskMetrics?: sfn.TaskMetricsConfig;
    /**
     * @experimental
     */
    protected readonly taskPolicies?: iam.PolicyStatement[];
    private readonly integrationPattern;
    /**
     * @experimental
     */
    constructor(scope: Construct, id: string, props: EventBridgePutEventsProps);
    /**
     * Returns an array of EventBusArn strings based on this.props.entries
     */
    private get eventBusArns();
    /**
     * Provides the EventBridge put events service integration task configuration
     * @internal
     */
    protected _renderTask(): any;
    private renderEntries;
    private validateEntries;
}
