import { aws_events as functionless_event_bridge } from "aws-cdk-lib";
export interface Event<T = any, DetailType extends string = string, Source extends string = string> {
    source: Source;
    "detail-type": DetailType;
    detail: T;
    version: string;
    id: string;
    account: string;
    time: string;
    region: string;
    resources: string[];
}
/**
 * CDK does not contain rich types for event bridge event patterns.
 * https://github.com/aws/aws-cdk/issues/6184
 */
export interface ExistsPattern {
    exists: boolean;
}
export declare const isExistsPattern: (x: any) => x is ExistsPattern;
export interface PrefixPattern {
    prefix: string;
}
export declare const isPrefixPattern: (x: any) => x is PrefixPattern;
/**
 * Can only contain a single prefix pattern.
 */
export interface AnythingButPattern {
    "anything-but": (string | number | null)[] | string | number | PrefixPattern | null;
}
export declare const isAnythingButPattern: (x: any) => x is AnythingButPattern;
export interface NumberPattern {
    numeric: [string, number, string, number] | [string, number];
}
export declare const isNumberPattern: (x: any) => x is NumberPattern;
export declare const isMatchPattern: (x: any) => x is MatchPattern;
export declare type MatchPattern = number | string | null | boolean;
export interface SubPattern extends Record<string, Pattern> {
}
export declare type PatternList = (MatchPattern | AnythingButPattern | NumberPattern | PrefixPattern | ExistsPattern)[];
export declare type Pattern = PatternList | undefined | SubPattern;
/**
 * AWS's Event Pattern
 * https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html
 *
 * CDK's Event Bridge types don't support the content matchers schemas.
 * To use with CDK, cast to {@link aws_events.EventPattern}.
 * https://github.com/aws/aws-cdk/issues/6184
 */
export declare type FunctionlessEventPattern = {
    [key in keyof functionless_event_bridge.EventPattern]: key extends "detail" ? Pattern : Exclude<Pattern, SubPattern>;
};
export declare const deploymentOnlyModule = true;
//# sourceMappingURL=types.d.ts.map