import { BotMessageMetadata } from '@botonic/shared';
import { BotonicOutput, BotonicOutputAudioData, BotonicOutputDocumentData, BotonicOutputImageData, BotonicOutputVideoData, OutputMessageType, OutputMessageTypeMap } from '@botonic/shared';
import { BotonicButtonMessageData, BotonicCarouselData, BotonicCustomData, BotonicLocationData, BotonicRatingData, BotonicTextData, BotonicTypingEventData, MessageType } from '@botonic/shared';
import { BotonicWhatsappButtonListData, BotonicWhatsappCatalogData, BotonicWhatsappCTAUrlButtonData, BotonicWhatsappMediaCarouselData, BotonicWhatsappProductCarouselData, BotonicWhatsappProductData, BotonicWhatsappProductListData, BotonicWhatsappTemplateData } from '@botonic/shared';
import { WebchatClientSettings } from '@botonic/shared';
export declare abstract class BotServerMessage<T extends OutputMessageType = OutputMessageType> extends BotonicOutput<T> implements BotMessageMetadata {
    readonly bot_interaction_id?: string;
    readonly feedback_enabled?: boolean;
    readonly inference_id?: string;
    readonly typing?: number;
    readonly delay?: number;
    constructor(type: T, data: OutputMessageTypeMap[T], metadata?: BotMessageMetadata);
}
export declare class BotServerMessageText extends BotServerMessage<MessageType.Text> {
    constructor(data: BotonicTextData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageAudio extends BotServerMessage<MessageType.Audio> {
    constructor(data: BotonicOutputAudioData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageImage extends BotServerMessage<MessageType.Image> {
    constructor(data: BotonicOutputImageData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageVideo extends BotServerMessage<MessageType.Video> {
    constructor(data: BotonicOutputVideoData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageDocument extends BotServerMessage<MessageType.Document> {
    constructor(data: BotonicOutputDocumentData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageLocation extends BotServerMessage<MessageType.Location> {
    constructor(data: BotonicLocationData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageButtonMessage extends BotServerMessage<MessageType.ButtonMessage> {
    constructor(data: BotonicButtonMessageData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageCarousel extends BotServerMessage<MessageType.Carousel> {
    constructor(data: BotonicCarouselData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageCustom extends BotServerMessage<MessageType.Custom> {
    constructor(data: BotonicCustomData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageTypingEvent extends BotServerMessage<MessageType.TypingEvent> {
    constructor(data: BotonicTypingEventData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageWhatsappButtonList extends BotServerMessage<MessageType.WhatsappButtonList> {
    constructor(data: BotonicWhatsappButtonListData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageWhatsappCTAUrlButton extends BotServerMessage<MessageType.WhatsappCTAUrlButton> {
    constructor(data: BotonicWhatsappCTAUrlButtonData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageWhatsappCatalog extends BotServerMessage<MessageType.WhatsappCatalog> {
    constructor(data: BotonicWhatsappCatalogData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageWhatsappProduct extends BotServerMessage<MessageType.WhatsappProduct> {
    constructor(data: BotonicWhatsappProductData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageWhatsappProductList extends BotServerMessage<MessageType.WhatsappProductList> {
    constructor(data: BotonicWhatsappProductListData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageWhatsappProductCarousel extends BotServerMessage<MessageType.WhatsappProductCarousel> {
    constructor(data: BotonicWhatsappProductCarouselData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageWhatsappMediaCarousel extends BotServerMessage<MessageType.WhatsappMediaCarousel> {
    constructor(data: BotonicWhatsappMediaCarouselData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageWhatsappTemplate extends BotServerMessage<MessageType.WhatsappTemplate> {
    constructor(data: BotonicWhatsappTemplateData, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageWebchatClientSettings extends BotServerMessage<MessageType.WebchatClientSettings> {
    constructor(data: WebchatClientSettings, metadata?: BotMessageMetadata);
}
export declare class BotServerMessageRating extends BotServerMessage<MessageType.Rating> {
    constructor(data: BotonicRatingData, metadata?: BotMessageMetadata);
}
export type BotServerMessageType = BotServerMessageText | BotServerMessageAudio | BotServerMessageImage | BotServerMessageVideo | BotServerMessageDocument | BotServerMessageLocation | BotServerMessageButtonMessage | BotServerMessageCarousel | BotServerMessageCustom | BotServerMessageTypingEvent | BotServerMessageWhatsappButtonList | BotServerMessageWhatsappCTAUrlButton | BotServerMessageWhatsappCatalog | BotServerMessageWhatsappProduct | BotServerMessageWhatsappProductList | BotServerMessageWhatsappProductCarousel | BotServerMessageWhatsappMediaCarousel | BotServerMessageWhatsappTemplate | BotServerMessageWebchatClientSettings | BotServerMessageRating;
