export interface Schedule {
    Name: string;
    Arn?: string;
    State?: 'ENABLED' | 'DISABLED';
    ScheduleExpression?: string;
    ScheduleExpressionTimezone?: string;
    Target?: {
        Arn: string;
        RoleArn: string;
        Input?: string;
    };
    FlexibleTimeWindow?: {
        Mode: 'OFF' | 'FLEXIBLE';
        MaximumWindowInMinutes?: number;
    };
    GroupName?: string;
    Description?: string;
    StartDate?: string;
    EndDate?: string;
    CreationDate?: string;
    LastModificationDate?: string;
}
export interface CreateScheduleInput {
    Name: string;
    GroupName?: string;
    ScheduleExpression: string;
    ScheduleExpressionTimezone?: string;
    Description?: string;
    State?: 'ENABLED' | 'DISABLED';
    FlexibleTimeWindow: {
        Mode: 'OFF' | 'FLEXIBLE';
        MaximumWindowInMinutes?: number;
    };
    Target: {
        Arn: string;
        RoleArn: string;
        Input?: string;
    };
    StartDate?: Date;
    EndDate?: Date;
}
export interface UpdateScheduleInput {
    Name: string;
    GroupName?: string;
    ScheduleExpression?: string;
    ScheduleExpressionTimezone?: string;
    Description?: string;
    State?: 'ENABLED' | 'DISABLED';
    FlexibleTimeWindow?: {
        Mode: 'OFF' | 'FLEXIBLE';
        MaximumWindowInMinutes?: number;
    };
    Target?: {
        Arn: string;
        RoleArn: string;
        Input?: string;
    };
}
export interface ScheduleGroup {
    Name: string;
    Arn?: string;
    State?: string;
    CreationDate?: string;
    LastModificationDate?: string;
}
export interface CreateScheduleOptions {
    name: string;
    scheduleExpression: string;
    targetArn: string;
    roleArn: string;
    input?: string;
    groupName?: string;
    state?: 'ENABLED' | 'DISABLED';
    description?: string;
    flexibleTimeWindow?: {
        mode: 'OFF' | 'FLEXIBLE';
        maxWindowMinutes?: number;
    };
}
export interface SchedulerRule {
    Name: string;
    Arn: string;
    EventPattern?: string;
    ScheduleExpression?: string;
    State: 'ENABLED' | 'DISABLED';
    Description?: string;
}
export interface SchedulerTarget {
    Id: string;
    Arn: string;
    RoleArn?: string;
    Input?: string;
    InputPath?: string;
}
/**
 * EventBridge Scheduler management using direct API calls
 */
export declare class SchedulerClient {
    private client;
    private region;
    constructor(region?: string, profile?: string);
    /**
     * Create a new schedule (EventBridge rule)
     */
    createRule(options: {
        name: string;
        scheduleExpression: string;
        description?: string;
        state?: 'ENABLED' | 'DISABLED';
    }): Promise<{
        RuleArn: string;
    }>;
    /**
     * Add target to a rule
     */
    putTargets(ruleName: string, targets: SchedulerTarget[]): Promise<void>;
    /**
     * List all rules
     */
    listRules(namePrefix?: string): Promise<{
        Rules: SchedulerRule[];
    }>;
    /**
     * Describe a rule
     */
    describeRule(name: string): Promise<SchedulerRule>;
    /**
     * List targets for a rule
     */
    listTargetsByRule(ruleName: string): Promise<{
        Targets: SchedulerTarget[];
    }>;
    /**
     * Delete a rule
     */
    deleteRule(name: string, force?: boolean): Promise<void>;
    /**
     * Remove targets from a rule
     */
    removeTargets(ruleName: string, targetIds: string[]): Promise<void>;
    /**
     * Enable a rule
     */
    enableRule(name: string): Promise<void>;
    /**
     * Disable a rule
     */
    disableRule(name: string): Promise<void>;
    /**
     * Create a Lambda-triggered schedule
     */
    createLambdaSchedule(options: {
        name: string;
        scheduleExpression: string;
        functionArn: string;
        description?: string;
        input?: string;
    }): Promise<{
        RuleArn: string;
    }>;
    /**
     * Create an ECS task schedule
     */
    createEcsSchedule(options: {
        name: string;
        scheduleExpression: string;
        clusterArn: string;
        taskDefinitionArn: string;
        roleArn: string;
        subnets: string[];
        securityGroups?: string[];
        description?: string;
    }): Promise<{
        RuleArn: string;
    }>;
    /**
     * List schedules (EventBridge Scheduler API)
     */
    listSchedules(options?: {
        GroupName?: string;
        NamePrefix?: string;
        State?: string;
    }): Promise<{
        Schedules: Schedule[];
    }>;
    /**
     * Get a schedule by name (EventBridge Scheduler API)
     */
    getSchedule(options: {
        Name: string;
        GroupName?: string;
    }): Promise<Schedule | null>;
    /**
     * Create a schedule (EventBridge Scheduler API)
     */
    createSchedule(input: CreateScheduleInput): Promise<{
        ScheduleArn: string;
    }>;
    /**
     * Update a schedule (EventBridge Scheduler API)
     */
    updateSchedule(input: UpdateScheduleInput): Promise<{
        ScheduleArn: string;
    }>;
    /**
     * Delete a schedule (EventBridge Scheduler API)
     */
    deleteSchedule(options: {
        Name: string;
        GroupName?: string;
    }): Promise<void>;
    /**
     * List schedule groups (EventBridge Scheduler API)
     */
    listScheduleGroups(options?: {
        NamePrefix?: string;
    }): Promise<{
        ScheduleGroups: ScheduleGroup[];
    }>;
}
