import type { UpdateScheduleCommandOutput, CreateScheduleCommandOutput, DeleteScheduleCommandOutput, GetScheduleCommandOutput } from '@aws-sdk/client-scheduler';
import { SchedulerClient } from '@aws-sdk/client-scheduler';
import { Span } from '@opentelemetry/api';
import { ScheduleParams } from "../utils/types";
import { IEvent } from "@vtexlab/planner-contracts/build/types/utils/types";
export declare class EBScheduler extends SchedulerClient {
    schedule<TMessage extends IEvent>(params: ScheduleParams<TMessage>, callback?: (output: CreateScheduleCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<CreateScheduleCommandOutput>;
    get(id: string, callback?: (output: GetScheduleCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<{
        id: string;
        message: any;
        scheduleDate: Date;
        topicName: string;
    } | undefined>;
    updateSchedule<TMessage extends IEvent>(params: ScheduleParams<TMessage>, callback?: (output: UpdateScheduleCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<UpdateScheduleCommandOutput>;
    deleteSchedule(id: string, callback?: (output: DeleteScheduleCommandOutput, span: Span | undefined) => void, errorCallback?: (error: any, span: Span | undefined) => void): Promise<DeleteScheduleCommandOutput>;
}
