export interface IEventSourceMappingConfig {
    AmazonManagedKafkaEventSourceConfig?: {
        ConsumerGroupId: string;
    };
    BatchSize: number;
    BisectBatchOnFunctionError?: boolean;
    DestinationConfig?: {
        OnFailure: {
            Destination: string;
        };
        OnSuccess: {
            Destination: string;
        };
    };
    DocumentDBEventSourceConfig?: {
        CollectionName: string;
        DatabaseName: string;
        FullDocument: "UpdateLookup" | "Default";
    };
    Enabled: boolean;
    EventSourceArn: string;
    FilterCriteria?: {
        Filters: {
            Pattern: string;
        }[];
    };
    FunctionName: string;
    FunctionResponseTypes?: ["ReportBatchItemFailures"];
    MaximumBatchingWindowInSeconds?: number;
    MaximumRecordAgeInSeconds?: number;
    MaximumRetryAttempts?: number;
    ParallelizationFactor?: number;
    Queues?: string[];
    ScalingConfig?: {
        MaximumConcurrency?: number;
    };
    SelfManagedEventSource?: {
        Endpoints?: string[];
    };
    SelfManagedKafkaEventSourceConfig?: {
        ConsumerGroupId?: string;
    };
    SourceAccessConfigurations?: {
        Type?: "BASIC_AUTH" | "VPC_SUBNET" | "VPC_SECURITY_GROUP" | "SASL_SCRAM_512_AUTH" | "SASL_SCRAM_256_AUTH" | "VIRTUAL_HOST" | "CLIENT_CERTIFICATE_TLS_AUTH" | "SERVER_ROOT_CA_CERTIFICATE";
        URI?: string;
    }[];
    StartingPosition?: "TRIM_HORIZON" | "LATEST" | "AT_TIMESTAMP";
    StartingPositionTimestamp?: number;
    Topics?: string[];
    TumblingWindowInSeconds?: number;
}
export declare abstract class EventSourceMapping {
    config: IEventSourceMappingConfig;
    legacyDefinition: any;
    static SOURCES: EventSourceMapping[];
    UUID: `${string}-${string}-${string}-${string}-${string}`;
    LastModified: number;
    LastProcessingResult: "No records processed";
    State: "Creating" | "Enabling" | "Enabled" | "Disabling" | "Disabled";
    StateTransitionReason: "USER_INITIATED" | "User action";
    constructor(config: IEventSourceMappingConfig, legacyDefinition: any);
    filterRecords(records: any[]): any[][];
}
