export interface EventBridgeRule {
    Name: string;
    Arn?: string;
    EventPattern?: string;
    ScheduleExpression?: string;
    State?: 'ENABLED' | 'DISABLED';
    Description?: string;
    RoleArn?: string;
    EventBusName?: string;
}
export interface EventBus {
    Name?: string;
    Arn?: string;
    Policy?: string;
}
export interface EventBridgeTarget {
    Id: string;
    Arn: string;
    RoleArn?: string;
    Input?: string;
    InputPath?: string;
    InputTransformer?: {
        InputPathsMap?: Record<string, string>;
        InputTemplate: string;
    };
    RetryPolicy?: {
        MaximumRetryAttempts?: number;
        MaximumEventAgeInSeconds?: number;
    };
}
/**
 * EventBridge client for direct API calls
 */
export declare class EventBridgeClient {
    private client;
    private region;
    constructor(region?: string);
    private request;
    /**
     * Create or update a rule
     */
    putRule(params: {
        Name: string;
        ScheduleExpression?: string;
        EventPattern?: string;
        State?: 'ENABLED' | 'DISABLED';
        Description?: string;
        RoleArn?: string;
        Tags?: Array<{
            Key: string;
            Value: string;
        }>;
        EventBusName?: string;
    }): Promise<{
        RuleArn: string;
    }>;
    /**
     * Delete a rule
     */
    deleteRule(params: {
        Name: string;
        EventBusName?: string;
        Force?: boolean;
    }): Promise<void>;
    /**
     * Describe a rule
     */
    describeRule(params: {
        Name: string;
        EventBusName?: string;
    }): Promise<EventBridgeRule>;
    /**
     * List rules
     */
    listRules(params?: {
        NamePrefix?: string;
        EventBusName?: string;
        NextToken?: string;
        Limit?: number;
    }): Promise<{
        Rules: EventBridgeRule[];
        NextToken?: string;
    }>;
    /**
     * List event buses
     */
    listEventBuses(params?: {
        NamePrefix?: string;
        NextToken?: string;
        Limit?: number;
    }): Promise<{
        EventBuses: EventBus[];
        NextToken?: string;
    }>;
    /**
     * Enable a rule
     */
    enableRule(params: {
        Name: string;
        EventBusName?: string;
    }): Promise<void>;
    /**
     * Disable a rule
     */
    disableRule(params: {
        Name: string;
        EventBusName?: string;
    }): Promise<void>;
    /**
     * Add targets to a rule
     */
    putTargets(params: {
        Rule: string;
        EventBusName?: string;
        Targets: EventBridgeTarget[];
    }): Promise<{
        FailedEntryCount: number;
        FailedEntries: Array<{
            TargetId: string;
            ErrorCode: string;
            ErrorMessage: string;
        }>;
    }>;
    /**
     * Remove targets from a rule
     */
    removeTargets(params: {
        Rule: string;
        EventBusName?: string;
        Ids: string[];
        Force?: boolean;
    }): Promise<{
        FailedEntryCount: number;
        FailedEntries: Array<{
            TargetId: string;
            ErrorCode: string;
            ErrorMessage: string;
        }>;
    }>;
    /**
     * List targets for a rule
     */
    listTargetsByRule(params: {
        Rule: string;
        EventBusName?: string;
        NextToken?: string;
        Limit?: number;
    }): Promise<{
        Targets: EventBridgeTarget[];
        NextToken?: string;
    }>;
    /**
     * Put events to EventBridge
     */
    putEvents(params: {
        Entries: Array<{
            Time?: string;
            Source: string;
            Resources?: string[];
            DetailType: string;
            Detail: string;
            EventBusName?: string;
        }>;
    }): Promise<{
        FailedEntryCount: number;
        Entries: Array<{
            EventId?: string;
            ErrorCode?: string;
            ErrorMessage?: string;
        }>;
    }>;
    /**
     * Create a scheduler schedule (EventBridge Scheduler)
     */
    createSchedule(params: {
        Name: string;
        ScheduleExpression: string;
        FlexibleTimeWindow: {
            Mode: 'OFF' | 'FLEXIBLE';
            MaximumWindowInMinutes?: number;
        };
        Target: {
            Arn: string;
            RoleArn: string;
            Input?: string;
        };
        Description?: string;
        State?: 'ENABLED' | 'DISABLED';
        GroupName?: string;
    }): Promise<{
        ScheduleArn: string;
    }>;
}
