import type { Construct } from 'constructs';
import type { IConnection } from './connection';
import { HttpMethod } from './connection';
import type { IConnectionRef } from './events.generated';
import type { IResource } from '../../core';
import { Resource } from '../../core';
import type { ApiDestinationReference, IApiDestinationRef } from '../../interfaces/generated/aws-events-interfaces.generated';
/**
 * The event API Destination properties
 */
export interface ApiDestinationProps {
    /**
     * The name for the API destination.
     * @default - A unique name will be generated
     */
    readonly apiDestinationName?: string;
    /**
     * A description for the API destination.
     *
     * @default - none
     */
    readonly description?: string;
    /**
     * The ARN of the connection to use for the API destination
     */
    readonly connection: IConnectionRef;
    /**
     * The URL to the HTTP invocation endpoint for the API destination..
     */
    readonly endpoint: string;
    /**
     * The method to use for the request to the HTTP invocation endpoint.
     *
     * @default HttpMethod.POST
     */
    readonly httpMethod?: HttpMethod;
    /**
     * The maximum number of requests per second to send to the HTTP invocation endpoint.
     *
     * @default - Not rate limited
     */
    readonly rateLimitPerSecond?: number;
}
/**
 * Interface for API Destinations
 */
export interface IApiDestination extends IResource, IApiDestinationRef {
    /**
     * The Name of the Api Destination created.
     * @attribute
     */
    readonly apiDestinationName: string;
    /**
     * The ARN of the Api Destination created.
     * @attribute
     */
    readonly apiDestinationArn: string;
    /**
     * The Amazon Resource Name (ARN) of an API destination in resource format,
     * so it can be used in the Resource element of IAM permission policy statements.
     * @see https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridge.html#amazoneventbridge-resources-for-iam-policies
     * @attribute
     */
    readonly apiDestinationArnForPolicy?: string;
}
/**
 * The properties to import an existing Api Destination
 */
export interface ApiDestinationAttributes {
    /**
     * The ARN of the Api Destination
     */
    readonly apiDestinationArn: string;
    /**
     * The Connection to associate with the Api Destination
     */
    readonly connection: IConnectionRef;
    /**
     * The Amazon Resource Name (ARN) of an API destination in resource format.
     *
     * @default undefined - Imported API destination does not have ARN in resource format
     */
    readonly apiDestinationArnForPolicy?: string;
}
/**
 * Define an EventBridge Api Destination
 *
 * @resource AWS::Events::ApiDestination
 */
export declare class ApiDestination extends Resource implements IApiDestination {
    /** Uniquely identifies this class. */
    static readonly PROPERTY_INJECTION_ID: string;
    /**
     * Create an Api Destination construct from an existing Api Destination ARN.
     *
     * @param scope The scope creating construct (usually `this`).
     * @param id The construct's id.
     * @param attrs The Api Destination import attributes.
     */
    static fromApiDestinationAttributes(scope: Construct, id: string, attrs: ApiDestinationAttributes): IApiDestination;
    /**
     * The Connection to associate with Api Destination
     */
    private readonly _connection;
    /**
     * The CfnApiDestination resource
     */
    private readonly _resource;
    /**
     * The Name of the Api Destination created.
     * @attribute
     */
    get apiDestinationName(): string;
    /**
     * The ARN of the Api Destination created.
     * @attribute
     */
    get apiDestinationArn(): string;
    /**
     * The Amazon Resource Name (ARN) of an API destination in resource format.
     * @attribute
     */
    get apiDestinationArnForPolicy(): string | undefined;
    /**
     * The Connection to associate with Api Destination
     */
    get connection(): IConnection;
    get apiDestinationRef(): ApiDestinationReference;
    constructor(scope: Construct, id: string, props: ApiDestinationProps);
}
