import type { TemplateButtons, URIAction, TemplateConfirm, TemplateColumn, TemplateCarousel, TemplateImageColumn, TemplateImageCarousel, TemplateMessage, FlexBubble, FlexCarousel, FlexMessage, TextMessage, ImageMessage, VideoMessage, AudioMessage, LocationMessage, StickerMessage } from '@line/bot-sdk'; type URIActionWithLabel = URIAction & { label: string; }; type CTemplateButtons = Omit & { actions: URIActionWithLabel[]; }; type CTemplateConfirm = Omit & { actions: URIActionWithLabel[]; }; type CTemplateColumn = Omit & { defaultAction?: URIActionWithLabel; actions: URIActionWithLabel[]; }; type CTemplateCarousel = Omit & { columns: CTemplateColumn[]; }; type CTemplateImageColumn = Omit & { action: URIActionWithLabel; }; type CTemplateImageCarousel = Omit & { columns: CTemplateImageColumn[]; }; type CTemplateContent = CTemplateButtons | CTemplateConfirm | CTemplateCarousel | CTemplateImageCarousel; type CTemplateMessage = Omit & { template: CTemplateContent; }; type CFlexBubble = Omit & { action?: URIActionWithLabel; }; type CFlexCarousel = Omit & { contents: CFlexBubble[]; }; type CFlexContainer = CFlexBubble | CFlexCarousel; type CFlexMessage = Omit & { contents: CFlexContainer; }; export type LiffMessage = TextMessage | ImageMessage | VideoMessage | AudioMessage | LocationMessage | StickerMessage | CTemplateMessage | CFlexMessage; export {};