import type { Construct } from 'constructs';
import type { EventPattern } from './event-pattern';
import type { IEventBusRef } from './events.generated';
import type * as kms from '../../aws-kms';
import type { Duration } from '../../core';
import { Resource } from '../../core';
/**
 * The event archive base properties
 */
export interface BaseArchiveProps {
    /**
     * The name of the archive.
     *
     * @default - Automatically generated
     */
    readonly archiveName?: string;
    /**
     * A description for the archive.
     *
     * @default - none
     */
    readonly description?: string;
    /**
     * An event pattern to use to filter events sent to the archive.
     */
    readonly eventPattern: EventPattern;
    /**
     * The number of days to retain events for. Default value is 0. If set to 0, events are retained indefinitely.
     * @default - Infinite
     */
    readonly retention?: Duration;
    /**
     * The customer managed key that encrypts this archive
     *
     * @default - Use an AWS managed key
     */
    readonly kmsKey?: kms.IKey;
}
/**
 * The event archive properties
 */
export interface ArchiveProps extends BaseArchiveProps {
    /**
     * The event source associated with the archive.
     */
    readonly sourceEventBus: IEventBusRef;
}
/**
 * Define an EventBridge Archive
 *
 * @resource AWS::Events::Archive
 */
export declare class Archive extends Resource {
    /** Uniquely identifies this class. */
    static readonly PROPERTY_INJECTION_ID: string;
    /**
     * The archive name.
     * @attribute
     */
    readonly archiveName: string;
    /**
     * The ARN of the archive created.
     * @attribute
     */
    readonly archiveArn: string;
    constructor(scope: Construct, id: string, props: ArchiveProps);
}
