import { i as OpenClawConfig } from "./types.openclaw-D3K58V3f.js";
import { C as ZodEnum, Mi as output, Q as ZodOptional, Y as ZodNumber, Z as ZodObject, bt as ZodUnion, c as ZodBoolean, it as ZodRecord, na as $strict, r as ZodArray, st as ZodString, v as ZodDefault } from "./schemas-CkRCGSfd.js";
import { n as ChannelConfigSchema } from "./types.config-CKJTcS4X.js";
import { n as RuntimeEnv } from "./runtime-Bxifh4bY.js";
import { r as ReplyPayload } from "./reply-payload-19QGm3zG.js";
import { n as PluginRuntime } from "./types-DScm2TfQ.js";
import { c as LineProbeResult, d as ResolvedLineAccount, i as resolveLineAccount, l as LineSendResult, u as LineTemplateMessagePayload } from "./accounts-DDGY9swM.js";
import { IncomingMessage, ServerResponse } from "node:http";
import { NextFunction, Request, Response } from "express";

//#region node_modules/@line/bot-sdk/dist/messaging-api/model/allMentionTarget.d.ts
type AllMentionTarget = MentionTargetBase & {
  type: "all";
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/altUri.d.ts
/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type AltUri = {
  /**
   */
  desktop?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/audioMessage.d.ts
type AudioMessage$1 = MessageBase & {
  type: "audio";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#audio-message">originalContentUrl Documentation</a>
   */
  originalContentUrl: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#audio-message">duration Documentation</a>
   */
  duration: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/buttonsTemplate.d.ts
type ButtonsTemplate$1 = TemplateBase & {
  type: "buttons";
  /**
   */
  thumbnailImageUrl?: string;
  /**
   */
  imageAspectRatio?: string;
  /**
   */
  imageSize?: string;
  /**
   */
  imageBackgroundColor?: string;
  /**
   */
  title?: string;
  /**
   */
  text: string;
  /**
   */
  defaultAction?: Action$3;
  /**
   */
  actions: Array<Action$3>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/cameraAction.d.ts
type CameraAction = ActionBase & {
  type: "camera";
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/cameraRollAction.d.ts
type CameraRollAction = ActionBase & {
  type: "cameraRoll";
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/carouselColumn.d.ts
/**
 * Column object for carousel template.
 */
type CarouselColumn$1 = {
  /**
   */
  thumbnailImageUrl?: string;
  /**
   */
  imageBackgroundColor?: string;
  /**
   */
  title?: string;
  /**
   */
  text: string;
  /**
   */
  defaultAction?: Action$3;
  /**
   */
  actions: Array<Action$3>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/carouselTemplate.d.ts
type CarouselTemplate$1 = TemplateBase & {
  type: "carousel";
  /**
   */
  columns: Array<CarouselColumn$1>;
  /**
   */
  imageAspectRatio?: string;
  /**
   */
  imageSize?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/clipboardAction.d.ts
type ClipboardAction = ActionBase & {
  type: "clipboard";
  /**
   * Text that is copied to the clipboard. Max character limit: 1000
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#clipboard-action">clipboardText Documentation</a>
   */
  clipboardText: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/clipboardImagemapAction.d.ts
type ClipboardImagemapAction = ImagemapActionBase & {
  type: "clipboard";
  /**
   * Text that is copied to the clipboard. Max character limit: 1000
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#imagemap-clipboard-action-object">clipboardText Documentation</a>
   */
  clipboardText: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#imagemap-clipboard-action-object">label Documentation</a>
   */
  label?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/confirmTemplate.d.ts
type ConfirmTemplate$1 = TemplateBase & {
  type: "confirm";
  /**
   */
  text: string;
  /**
   */
  actions: Array<Action$3>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/couponMessage.d.ts
type CouponMessage = MessageBase & {
  type: "coupon";
  /**
   * Unique identifier of the coupon.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#coupon-message">couponId Documentation</a>
   */
  couponId: string;
  /**
   * Delivery route tag information. It can be used for analysis in LINE OA Manager.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#coupon-message">deliveryTag Documentation</a>
   */
  deliveryTag?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/datetimePickerAction.d.ts
type DatetimePickerAction = ActionBase & {
  type: "datetimepicker";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#datetime-picker-action">data Documentation</a>
   */
  data?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#datetime-picker-action">mode Documentation</a>
   */
  mode?: DatetimePickerAction.ModeEnum;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#datetime-picker-action">initial Documentation</a>
   */
  initial?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#datetime-picker-action">max Documentation</a>
   */
  max?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#datetime-picker-action">min Documentation</a>
   */
  min?: string;
};
declare namespace DatetimePickerAction {
  type ModeEnum = "date" | "time" | "datetime";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/emoji.d.ts
/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type Emoji$1 = {
  /**
   */
  index?: number;
  /**
   */
  productId?: string;
  /**
   */
  emojiId?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/emojiSubstitutionObject.d.ts
type EmojiSubstitutionObject = SubstitutionObjectBase & {
  type: "emoji";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message-v2-emoji-object">productId Documentation</a>
   */
  productId: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message-v2-emoji-object">emojiId Documentation</a>
   */
  emojiId: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexBlockStyle.d.ts
/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type FlexBlockStyle = {
  /**
   */
  backgroundColor?: string;
  /**
   */
  separator?: boolean;
  /**
   */
  separatorColor?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexBoxBackground.d.ts
type FlexBoxBackground = FlexBoxLinearGradient;
type FlexBoxBackgroundBase = {
  /**
   */
  type: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexComponent.d.ts
type FlexComponent$1 = FlexBox$1 | FlexButton$1 | FlexFiller | FlexIcon | FlexImage$1 | FlexSeparator | FlexSpan | FlexText$1 | FlexVideo;
type FlexComponentBase = {
  /**
   */
  type: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexBox.d.ts
type FlexBox$1 = FlexComponentBase & {
  type: "box";
  /**
   */
  layout: FlexBox$1.LayoutEnum;
  /**
   */
  flex?: number;
  /**
   */
  contents: Array<FlexComponent$1>;
  /**
   */
  spacing?: string;
  /**
   */
  margin?: string;
  /**
   */
  position?: FlexBox$1.PositionEnum;
  /**
   */
  offsetTop?: string;
  /**
   */
  offsetBottom?: string;
  /**
   */
  offsetStart?: string;
  /**
   */
  offsetEnd?: string;
  /**
   */
  backgroundColor?: string;
  /**
   */
  borderColor?: string;
  /**
   */
  borderWidth?: string;
  /**
   */
  cornerRadius?: string;
  /**
   */
  width?: string;
  /**
   */
  maxWidth?: string;
  /**
   */
  height?: string;
  /**
   */
  maxHeight?: string;
  /**
   */
  paddingAll?: string;
  /**
   */
  paddingTop?: string;
  /**
   */
  paddingBottom?: string;
  /**
   */
  paddingStart?: string;
  /**
   */
  paddingEnd?: string;
  /**
   */
  action?: Action$3;
  /**
   */
  justifyContent?: FlexBox$1.JustifyContentEnum;
  /**
   */
  alignItems?: FlexBox$1.AlignItemsEnum;
  /**
   */
  background?: FlexBoxBackground;
};
declare namespace FlexBox$1 {
  type LayoutEnum = "horizontal" | "vertical" | "baseline";
  type PositionEnum = "relative" | "absolute";
  type JustifyContentEnum = "center" | "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly";
  type AlignItemsEnum = "center" | "flex-start" | "flex-end";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexBoxLinearGradient.d.ts
type FlexBoxLinearGradient = FlexBoxBackgroundBase & {
  type: "linearGradient";
  /**
   */
  angle?: string;
  /**
   */
  startColor?: string;
  /**
   */
  endColor?: string;
  /**
   */
  centerColor?: string;
  /**
   */
  centerPosition?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexBubbleStyles.d.ts
type FlexBubbleStyles = {
  /**
   */
  header?: FlexBlockStyle;
  /**
   */
  hero?: FlexBlockStyle;
  /**
   */
  body?: FlexBlockStyle;
  /**
   */
  footer?: FlexBlockStyle;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexBubble.d.ts
type FlexBubble$1 = FlexContainerBase & {
  type: "bubble";
  /**
   */
  direction?: FlexBubble$1.DirectionEnum;
  /**
   */
  styles?: FlexBubbleStyles;
  /**
   */
  header?: FlexBox$1;
  /**
   */
  hero?: FlexComponent$1;
  /**
   */
  body?: FlexBox$1;
  /**
   */
  footer?: FlexBox$1;
  /**
   */
  size?: FlexBubble$1.SizeEnum;
  /**
   */
  action?: Action$3;
};
declare namespace FlexBubble$1 {
  type DirectionEnum = "ltr" | "rtl";
  type SizeEnum = "nano" | "micro" | "deca" | "hecto" | "kilo" | "mega" | "giga";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexButton.d.ts
type FlexButton$1 = FlexComponentBase & {
  type: "button";
  /**
   */
  flex?: number;
  /**
   */
  color?: string;
  /**
   */
  style?: FlexButton$1.StyleEnum;
  /**
   */
  action: Action$3;
  /**
   */
  gravity?: FlexButton$1.GravityEnum;
  /**
   */
  margin?: string;
  /**
   */
  position?: FlexButton$1.PositionEnum;
  /**
   */
  offsetTop?: string;
  /**
   */
  offsetBottom?: string;
  /**
   */
  offsetStart?: string;
  /**
   */
  offsetEnd?: string;
  /**
   */
  height?: FlexButton$1.HeightEnum;
  /**
   */
  adjustMode?: FlexButton$1.AdjustModeEnum;
  /**
   */
  scaling?: boolean;
};
declare namespace FlexButton$1 {
  type StyleEnum = "primary" | "secondary" | "link";
  type GravityEnum = "top" | "bottom" | "center";
  type PositionEnum = "relative" | "absolute";
  type HeightEnum = "md" | "sm";
  type AdjustModeEnum = "shrink-to-fit";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexCarousel.d.ts
type FlexCarousel$1 = FlexContainerBase & {
  type: "carousel";
  /**
   */
  contents: Array<FlexBubble$1>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexContainer.d.ts
type FlexContainer$2 = FlexBubble$1 | FlexCarousel$1;
type FlexContainerBase = {
  /**
   */
  type: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexFiller.d.ts
type FlexFiller = FlexComponentBase & {
  type: "filler";
  /**
   */
  flex?: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexIcon.d.ts
type FlexIcon = FlexComponentBase & {
  type: "icon";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">url Documentation</a>
   */
  url: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">size Documentation</a>
   */
  size?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">aspectRatio Documentation</a>
   */
  aspectRatio?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">margin Documentation</a>
   */
  margin?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">position Documentation</a>
   */
  position?: FlexIcon.PositionEnum;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">offsetTop Documentation</a>
   */
  offsetTop?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">offsetBottom Documentation</a>
   */
  offsetBottom?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">offsetStart Documentation</a>
   */
  offsetStart?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">offsetEnd Documentation</a>
   */
  offsetEnd?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#icon">scaling Documentation</a>
   */
  scaling?: boolean;
};
declare namespace FlexIcon {
  type PositionEnum = "relative" | "absolute";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexImage.d.ts
type FlexImage$1 = FlexComponentBase & {
  type: "image";
  /**
   * Image URL (Max character limit: 2000) Protocol: HTTPS (TLS 1.2 or later) Image format: JPEG or PNG Maximum image size: 1024×1024 pixels Maximum file size: 10 MB (300 KB when the animated property is true)
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">url Documentation</a>
   */
  url: string;
  /**
   * The ratio of the width or height of this component within the parent box.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">flex Documentation</a>
   */
  flex?: number;
  /**
   * The minimum amount of space to include before this component in its parent container.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">margin Documentation</a>
   */
  margin?: string;
  /**
   * Reference for offsetTop, offsetBottom, offsetStart, and offsetEnd. Specify one of the following values:  `relative`: Use the previous box as reference. `absolute`: Use the top left of parent element as reference. The default value is relative.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">position Documentation</a>
   */
  position?: FlexImage$1.PositionEnum;
  /**
   * Offset.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">offsetTop Documentation</a>
   */
  offsetTop?: string;
  /**
   * Offset.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">offsetBottom Documentation</a>
   */
  offsetBottom?: string;
  /**
   * Offset.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">offsetStart Documentation</a>
   */
  offsetStart?: string;
  /**
   * Offset.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">offsetEnd Documentation</a>
   */
  offsetEnd?: string;
  /**
   * Alignment style in horizontal direction.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">align Documentation</a>
   */
  align?: FlexImage$1.AlignEnum;
  /**
   * Alignment style in vertical direction.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">gravity Documentation</a>
   */
  gravity?: FlexImage$1.GravityEnum;
  /**
   * The maximum image width. This is md by default.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">size Documentation</a>
   */
  size?: string;
  /**
   * Aspect ratio of the image. `{width}:{height}` format. Specify the value of `{width}` and `{height}` in the range from `1` to `100000`. However, you cannot set `{height}` to a value that is more than three times the value of `{width}`. The default value is `1:1`.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">aspectRatio Documentation</a>
   */
  aspectRatio?: string;
  /**
   * The display style of the image if the aspect ratio of the image and that specified by the aspectRatio property do not match.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">aspectMode Documentation</a>
   */
  aspectMode?: FlexImage$1.AspectModeEnum;
  /**
   * Background color of the image. Use a hexadecimal color code.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">backgroundColor Documentation</a>
   */
  backgroundColor?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">action Documentation</a>
   */
  action?: Action$3;
  /**
   * When this is `true`, an animated image (APNG) plays. You can specify a value of true up to 10 images in a single message. You can\'t send messages that exceed this limit. This is `false` by default. Animated images larger than 300 KB aren\'t played back.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#f-image">animated Documentation</a>
   */
  animated?: boolean;
};
declare namespace FlexImage$1 {
  type PositionEnum = "relative" | "absolute";
  type AlignEnum = "start" | "end" | "center";
  type GravityEnum = "top" | "bottom" | "center";
  type AspectModeEnum = "fit" | "cover";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexMessage.d.ts
type FlexMessage$1 = MessageBase & {
  type: "flex";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#flex-message">altText Documentation</a>
   */
  altText: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#flex-message">contents Documentation</a>
   */
  contents: FlexContainer$2;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexSeparator.d.ts
type FlexSeparator = FlexComponentBase & {
  type: "separator";
  /**
   */
  margin?: string;
  /**
   */
  color?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexSpan.d.ts
type FlexSpan = FlexComponentBase & {
  type: "span";
  /**
   */
  text?: string;
  /**
   */
  size?: string;
  /**
   */
  color?: string;
  /**
   */
  weight?: FlexSpan.WeightEnum;
  /**
   */
  style?: FlexSpan.StyleEnum;
  /**
   */
  decoration?: FlexSpan.DecorationEnum;
};
declare namespace FlexSpan {
  type WeightEnum = "regular" | "bold";
  type StyleEnum = "normal" | "italic";
  type DecorationEnum = "none" | "underline" | "line-through";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexText.d.ts
type FlexText$1 = FlexComponentBase & {
  type: "text";
  /**
   */
  flex?: number;
  /**
   */
  text?: string;
  /**
   */
  size?: string;
  /**
   */
  align?: FlexText$1.AlignEnum;
  /**
   */
  gravity?: FlexText$1.GravityEnum;
  /**
   */
  color?: string;
  /**
   */
  weight?: FlexText$1.WeightEnum;
  /**
   */
  style?: FlexText$1.StyleEnum;
  /**
   */
  decoration?: FlexText$1.DecorationEnum;
  /**
   */
  wrap?: boolean;
  /**
   */
  lineSpacing?: string;
  /**
   */
  margin?: string;
  /**
   */
  position?: FlexText$1.PositionEnum;
  /**
   */
  offsetTop?: string;
  /**
   */
  offsetBottom?: string;
  /**
   */
  offsetStart?: string;
  /**
   */
  offsetEnd?: string;
  /**
   */
  action?: Action$3;
  /**
   */
  maxLines?: number;
  /**
   */
  contents?: Array<FlexSpan>;
  /**
   */
  adjustMode?: FlexText$1.AdjustModeEnum;
  /**
   */
  scaling?: boolean;
};
declare namespace FlexText$1 {
  type AlignEnum = "start" | "end" | "center";
  type GravityEnum = "top" | "bottom" | "center";
  type WeightEnum = "regular" | "bold";
  type StyleEnum = "normal" | "italic";
  type DecorationEnum = "none" | "underline" | "line-through";
  type PositionEnum = "relative" | "absolute";
  type AdjustModeEnum = "shrink-to-fit";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/flexVideo.d.ts
type FlexVideo = FlexComponentBase & {
  type: "video";
  /**
   */
  url: string;
  /**
   */
  previewUrl: string;
  /**
   */
  altContent: FlexComponent$1;
  /**
   */
  aspectRatio?: string;
  /**
   */
  action?: Action$3;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/imageCarouselColumn.d.ts
type ImageCarouselColumn$1 = {
  /**
   */
  imageUrl: string;
  /**
   */
  action: Action$3;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/imageCarouselTemplate.d.ts
type ImageCarouselTemplate$1 = TemplateBase & {
  type: "image_carousel";
  /**
   */
  columns: Array<ImageCarouselColumn$1>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/imageMessage.d.ts
type ImageMessage$1 = MessageBase & {
  type: "image";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#image-message">originalContentUrl Documentation</a>
   */
  originalContentUrl: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#image-message">previewImageUrl Documentation</a>
   */
  previewImageUrl: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/imagemapArea.d.ts
/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type ImagemapArea = {
  /**
   */
  x: number;
  /**
   */
  y: number;
  /**
   */
  width: number;
  /**
   */
  height: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/imagemapAction.d.ts
type ImagemapAction = ClipboardImagemapAction | MessageImagemapAction | URIImagemapAction;
type ImagemapActionBase = {
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#imagemap-action-objects">type Documentation</a>
   */
  type: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#imagemap-action-objects">area Documentation</a>
   */
  area: ImagemapArea;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/imagemapBaseSize.d.ts
/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type ImagemapBaseSize = {
  /**
   */
  height: number;
  /**
   */
  width: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/imagemapExternalLink.d.ts
/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type ImagemapExternalLink = {
  /**
   */
  linkUri?: string;
  /**
   */
  label?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/imagemapVideo.d.ts
type ImagemapVideo = {
  /**
   */
  originalContentUrl?: string;
  /**
   */
  previewImageUrl?: string;
  /**
   */
  area?: ImagemapArea;
  /**
   */
  externalLink?: ImagemapExternalLink;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/imagemapMessage.d.ts
type ImagemapMessage = MessageBase & {
  type: "imagemap";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#imagemap-message">baseUrl Documentation</a>
   */
  baseUrl: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#imagemap-message">altText Documentation</a>
   */
  altText: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#imagemap-message">baseSize Documentation</a>
   */
  baseSize: ImagemapBaseSize;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#imagemap-message">actions Documentation</a>
   */
  actions: Array<ImagemapAction>;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#imagemap-message">video Documentation</a>
   */
  video?: ImagemapVideo;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/locationAction.d.ts
type LocationAction = ActionBase & {
  type: "location";
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/locationMessage.d.ts
type LocationMessage$1 = MessageBase & {
  type: "location";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#location-message">title Documentation</a>
   */
  title: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#location-message">address Documentation</a>
   */
  address: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#location-message">latitude Documentation</a>
   */
  latitude: number;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#location-message">longitude Documentation</a>
   */
  longitude: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/mentionTarget.d.ts
type MentionTarget = AllMentionTarget | UserMentionTarget;
type MentionTargetBase = {
  /**
   * Target to be mentioned
   */
  type: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/mentionSubstitutionObject.d.ts
type MentionSubstitutionObject = SubstitutionObjectBase & {
  type: "mention";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message-v2-mention-object">mentionee Documentation</a>
   */
  mentionee: MentionTarget;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/messageAction.d.ts
type MessageAction = ActionBase & {
  type: "message";
  /**
   */
  text?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/messageImagemapAction.d.ts
type MessageImagemapAction = ImagemapActionBase & {
  type: "message";
  /**
   */
  text: string;
  /**
   */
  label?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/postbackAction.d.ts
type PostbackAction = ActionBase & {
  type: "postback";
  /**
   */
  data?: string;
  /**
   */
  displayText?: string;
  /**
   */
  text?: string;
  /**
   */
  inputOption?: PostbackAction.InputOptionEnum;
  /**
   */
  fillInText?: string;
};
declare namespace PostbackAction {
  type InputOptionEnum = "closeRichMenu" | "openRichMenu" | "openKeyboard" | "openVoice";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/richMenuBounds.d.ts
/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Rich menu bounds
 */
type RichMenuBounds = {
  /**
   * Horizontal position relative to the top-left corner of the area.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#bounds-object">x Documentation</a>
   */
  x?: number;
  /**
   * Vertical position relative to the top-left corner of the area.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#bounds-object">y Documentation</a>
   */
  y?: number;
  /**
   * Width of the area.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#bounds-object">width Documentation</a>
   */
  width?: number;
  /**
   * Height of the area.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#bounds-object">height Documentation</a>
   */
  height?: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/richMenuArea.d.ts
/**
 * Rich menu area
 */
type RichMenuArea$1 = {
  /**
   */
  bounds?: RichMenuBounds;
  /**
   */
  action?: Action$3;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/richMenuSize.d.ts
/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Rich menu size
 */
type RichMenuSize$1 = {
  /**
   * width
   */
  width?: number;
  /**
   * height
   */
  height?: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/richMenuResponse.d.ts
type RichMenuResponse$1 = {
  /**
   * ID of a rich menu
   */
  richMenuId: string;
  /**
   */
  size: RichMenuSize$1;
  /**
   * `true` to display the rich menu by default. Otherwise, `false`.
   */
  selected: boolean;
  /**
   * Name of the rich menu. This value can be used to help manage your rich menus and is not displayed to users.
   */
  name: string;
  /**
   * Text displayed in the chat bar
   */
  chatBarText: string;
  /**
   * Array of area objects which define the coordinates and size of tappable areas
   */
  areas: Array<RichMenuArea$1>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/richMenuRequest.d.ts
type RichMenuRequest$1 = {
  /**
   */
  size?: RichMenuSize$1;
  /**
   * `true` to display the rich menu by default. Otherwise, `false`.
   */
  selected?: boolean;
  /**
   * Name of the rich menu. This value can be used to help manage your rich menus and is not displayed to users.
   */
  name?: string;
  /**
   * Text displayed in the chat bar
   */
  chatBarText?: string;
  /**
   * Array of area objects which define the coordinates and size of tappable areas
   */
  areas?: Array<RichMenuArea$1>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/richMenuSwitchAction.d.ts
type RichMenuSwitchAction = ActionBase & {
  type: "richmenuswitch";
  /**
   */
  data?: string;
  /**
   */
  richMenuAliasId?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/sender.d.ts
/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Change icon and display name
 */
type Sender = {
  /**
   * Display name. Certain words such as `LINE` may not be used.
   */
  name?: string;
  /**
   * URL of the image to display as an icon when sending a message
   */
  iconUrl?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/stickerMessage.d.ts
type StickerMessage = MessageBase & {
  type: "sticker";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#sticker-message">packageId Documentation</a>
   */
  packageId: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#sticker-message">stickerId Documentation</a>
   */
  stickerId: string;
  /**
   * Quote token of the message you want to quote.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#sticker-message">quoteToken Documentation</a>
   */
  quoteToken?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/substitutionObject.d.ts
type SubstitutionObject = EmojiSubstitutionObject | MentionSubstitutionObject;
/**
 * An object that defines the replacement value for a placeholder in the text.
 */
type SubstitutionObjectBase = {
  /**
   * Type of substitution object
   */
  type: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/template.d.ts
type Template = ButtonsTemplate$1 | CarouselTemplate$1 | ConfirmTemplate$1 | ImageCarouselTemplate$1;
type TemplateBase = {
  /**
   */
  type: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/templateMessage.d.ts
type TemplateMessage$2 = MessageBase & {
  type: "template";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#template-messages">altText Documentation</a>
   */
  altText: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#template-messages">template Documentation</a>
   */
  template: Template;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/textMessage.d.ts
type TextMessage$1 = MessageBase & {
  type: "text";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message">text Documentation</a>
   */
  text: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message">emojis Documentation</a>
   */
  emojis?: Array<Emoji$1>;
  /**
   * Quote token of the message you want to quote.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message">quoteToken Documentation</a>
   */
  quoteToken?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/textMessageV2.d.ts
type TextMessageV2 = MessageBase & {
  type: "textV2";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message-v2">text Documentation</a>
   */
  text: string;
  /**
   * A mapping that specifies substitutions for parts enclosed in {} within the `text` field.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message-v2">substitution Documentation</a>
   */
  substitution?: {
    [key: string]: SubstitutionObject;
  };
  /**
   * Quote token of the message you want to quote.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message-v2">quoteToken Documentation</a>
   */
  quoteToken?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/uRIAction.d.ts
type URIAction = ActionBase & {
  type: "uri";
  /**
   */
  uri?: string;
  /**
   */
  altUri?: AltUri;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/uRIImagemapAction.d.ts
type URIImagemapAction = ImagemapActionBase & {
  type: "uri";
  /**
   */
  linkUri: string;
  /**
   */
  label?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/userMentionTarget.d.ts
type UserMentionTarget = MentionTargetBase & {
  type: "user";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#text-message-v2-mentionee-user">userId Documentation</a>
   */
  userId: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/videoMessage.d.ts
type VideoMessage$1 = MessageBase & {
  type: "video";
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#video-message">originalContentUrl Documentation</a>
   */
  originalContentUrl: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#video-message">previewImageUrl Documentation</a>
   */
  previewImageUrl: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#video-message">trackingId Documentation</a>
   */
  trackingId?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/action.d.ts
type Action$3 = CameraAction | CameraRollAction | ClipboardAction | DatetimePickerAction | LocationAction | MessageAction | PostbackAction | RichMenuSwitchAction | URIAction;
/**
 * Action
 */
type ActionBase = {
  /**
   * Type of action
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#action-objects">type Documentation</a>
   */
  type?: string;
  /**
   * Label for the action.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#action-objects">label Documentation</a>
   */
  label?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/quickReplyItem.d.ts
type QuickReplyItem = {
  /**
   * URL of the icon that is displayed at the beginning of the button
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#items-object">imageUrl Documentation</a>
   */
  imageUrl?: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#items-object">action Documentation</a>
   */
  action?: Action$3;
  /**
   * `action`
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#items-object">type Documentation</a>
   */
  type?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/quickReply.d.ts
/**
 * Quick reply
 */
type QuickReply$1 = {
  /**
   * Quick reply button objects.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#items-object">items Documentation</a>
   */
  items?: Array<QuickReplyItem>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/messaging-api/model/message.d.ts
type Message$1 = AudioMessage$1 | CouponMessage | FlexMessage$1 | ImageMessage$1 | ImagemapMessage | LocationMessage$1 | StickerMessage | TemplateMessage$2 | TextMessage$1 | TextMessageV2 | VideoMessage$1;
type MessageBase = {
  /**
   * Type of message
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#message-common-properties">type Documentation</a>
   */
  type: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#message-common-properties">quickReply Documentation</a>
   */
  quickReply?: QuickReply$1;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#message-common-properties">sender Documentation</a>
   */
  sender?: Sender;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/linkContent.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Content of the account link event.
 */
type LinkContent = {
  /**
   * One of the following values to indicate whether linking the account was successful or not
   */
  result: LinkContent.ResultEnum;
  /**
   * Specified nonce (number used once) when verifying the user ID.
   */
  nonce: string;
};
declare namespace LinkContent {
  type ResultEnum = "ok" | "failed";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/accountLinkEvent.d.ts
type AccountLinkEvent = EventBase & {
  type: "accountLink";
  /**
   * Reply token used to send reply message to this event. This property won\'t be included if linking the account has failed.
   */
  replyToken?: string;
  /**
   */
  link: LinkContent;
};
declare namespace AccountLinkEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/chatControl.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type ChatControl = {
  /**
   */
  expireAt: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/activatedEvent.d.ts
type ActivatedEvent = EventBase & {
  type: "activated";
  /**
   */
  chatControl: ChatControl;
};
declare namespace ActivatedEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/allMentionee.d.ts
type AllMentionee = MentioneeBase & {
  type: "all";
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/attachedModuleContent.d.ts
type AttachedModuleContent = ModuleContentBase & {
  type: "attached";
  /**
   * User ID of the bot on the attached LINE Official Account
   */
  botId: string;
  /**
   * An array of strings indicating the scope permitted by the admin of the LINE Official Account.
   */
  scopes: Array<string>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/contentProvider.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Provider of the media file.
 */
type ContentProvider = {
  /**
   * Provider of the image file.
   */
  type: ContentProvider.TypeEnum;
  /**
   * URL of the image file. Only included when contentProvider.type is external.
   */
  originalContentUrl?: string;
  /**
   * URL of the preview image. Only included when contentProvider.type is external.
   */
  previewImageUrl?: string;
};
declare namespace ContentProvider {
  type TypeEnum = "line" | "external";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/audioMessageContent.d.ts
type AudioMessageContent = MessageContentBase & {
  type: "audio";
  /**
   */
  contentProvider: ContentProvider;
  /**
   * Length of audio file (milliseconds)
   */
  duration?: number;
  /**
   * Token used to mark the message as read.
   */
  markAsReadToken?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/beaconContent.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type BeaconContent = {
  /**
   * Hardware ID of the beacon that was detected
   */
  hwid: string;
  /**
   * Type of beacon event.
   */
  type: BeaconContent.TypeEnum;
  /**
   * Device message of beacon that was detected.
   */
  dm?: string;
};
declare namespace BeaconContent {
  type TypeEnum = "enter" | "banner" | "stay";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/beaconEvent.d.ts
type BeaconEvent = EventBase & {
  type: "beacon";
  /**
   * Reply token used to send reply message to this event
   */
  replyToken: string;
  /**
   */
  beacon: BeaconContent;
};
declare namespace BeaconEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/botResumedEvent.d.ts
type BotResumedEvent = EventBase & {
  type: "botResumed";
};
declare namespace BotResumedEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/botSuspendedEvent.d.ts
type BotSuspendedEvent = EventBase & {
  type: "botSuspended";
};
declare namespace BotSuspendedEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/deliveryContext.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * webhook\'s delivery context information
 */
type DeliveryContext = {
  /**
   * Whether the webhook event is a redelivered one or not.
   */
  isRedelivery: boolean;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/eventMode.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Channel state.
 */
type EventMode = "active" | "standby";
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/source.d.ts
type Source = GroupSource | RoomSource | UserSource;
/**
 * the source of the event.
 */
type SourceBase = {
  /**
   * source type
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#source-user">type Documentation</a>
   */
  type: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/event.d.ts
type Event = AccountLinkEvent | ActivatedEvent | BeaconEvent | BotResumedEvent | BotSuspendedEvent | DeactivatedEvent | PnpDeliveryCompletionEvent | FollowEvent | JoinEvent | LeaveEvent | MemberJoinedEvent | MemberLeftEvent | MembershipEvent | MessageEvent | ModuleEvent | PostbackEvent | UnfollowEvent | UnsendEvent | VideoPlayCompleteEvent;
/**
 * Webhook event
 */
type EventBase = {
  /**
   * Type of the event
   */
  type: string;
  /**
   */
  source?: Source;
  /**
   * Time of the event in milliseconds.
   */
  timestamp: number;
  /**
   */
  mode: EventMode;
  /**
   * Webhook Event ID. An ID that uniquely identifies a webhook event. This is a string in ULID format.
   */
  webhookEventId: string;
  /**
   */
  deliveryContext: DeliveryContext;
};
declare namespace Event {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/callbackRequest.d.ts
/**
 * The request body contains a JSON object with the user ID of a bot that should receive webhook events and an array of webhook event objects.
 */
type CallbackRequest = {
  /**
   * User ID of a bot that should receive webhook events. The user ID value is a string that matches the regular expression, `U[0-9a-f]{32}`.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#request-body">destination Documentation</a>
   */
  destination: string;
  /**
   * Array of webhook event objects. The LINE Platform may send an empty array that doesn\'t include a webhook event object to confirm communication.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#request-body">events Documentation</a>
   */
  events: Array<Event>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/deactivatedEvent.d.ts
type DeactivatedEvent = EventBase & {
  type: "deactivated";
};
declare namespace DeactivatedEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/detachedModuleContent.d.ts
type DetachedModuleContent = ModuleContentBase & {
  type: "detached";
  /**
   * Detached LINE Official Account bot user ID
   */
  botId: string;
  /**
   * Reason for detaching
   */
  reason: DetachedModuleContent.ReasonEnum;
};
declare namespace DetachedModuleContent {
  type ReasonEnum = "bot_deleted";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/emoji.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type Emoji = {
  /**
   * Index position for a character in text, with the first character being at position 0.
   */
  index: number;
  /**
   * The length of the LINE emoji string. For LINE emoji (hello), 7 is the length.
   */
  length: number;
  /**
   * Product ID for a LINE emoji set.
   */
  productId: string;
  /**
   * ID for a LINE emoji inside a set.
   */
  emojiId: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/fileMessageContent.d.ts
type FileMessageContent = MessageContentBase & {
  type: "file";
  /**
   * File name
   */
  fileName: string;
  /**
   * File size in bytes
   */
  fileSize: number;
  /**
   * Token used to mark the message as read.
   */
  markAsReadToken?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/followDetail.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type FollowDetail = {
  /**
   * Whether a user has added your LINE Official Account as a friend or unblocked.
   */
  isUnblocked: boolean;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/followEvent.d.ts
type FollowEvent = EventBase & {
  type: "follow";
  /**
   * Reply token used to send reply message to this event
   */
  replyToken: string;
  /**
   */
  follow: FollowDetail;
};
declare namespace FollowEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/groupSource.d.ts
type GroupSource = SourceBase & {
  type: "group";
  /**
   * Group ID of the source group chat
   */
  groupId: string;
  /**
   * ID of the source user. Only included in message events. Only users of LINE for iOS and LINE for Android are included in userId.
   */
  userId?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/imageSet.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type ImageSet = {
  /**
   * Image set ID. Only included when multiple images are sent simultaneously.
   */
  id: string;
  /**
   * An index starting from 1, indicating the image number in a set of images sent simultaneously. Only included when multiple images are sent simultaneously. However, it won\'t be included if the sender is using LINE 11.15 or earlier for Android.
   */
  index?: number;
  /**
   * The total number of images sent simultaneously.
   */
  total?: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/imageMessageContent.d.ts
type ImageMessageContent = MessageContentBase & {
  type: "image";
  /**
   */
  contentProvider: ContentProvider;
  /**
   */
  imageSet?: ImageSet;
  /**
   * Quote token to quote this message.
   */
  quoteToken: string;
  /**
   * Token used to mark the message as read.
   */
  markAsReadToken?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/joinEvent.d.ts
type JoinEvent = EventBase & {
  type: "join";
  /**
   * Reply token used to send reply message to this event
   */
  replyToken: string;
};
declare namespace JoinEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/userSource.d.ts
type UserSource = SourceBase & {
  type: "user";
  /**
   * ID of the source user
   */
  userId?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/joinedMembers.d.ts
type JoinedMembers = {
  /**
   * Users who joined. Array of source user objects.
   */
  members: Array<UserSource>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/joinedMembershipContent.d.ts
type JoinedMembershipContent = MembershipContentBase & {
  type: "joined";
  /**
   * The ID of the membership that the user joined. This is defined for each membership.
   */
  membershipId: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/leaveEvent.d.ts
type LeaveEvent = EventBase & {
  type: "leave";
};
declare namespace LeaveEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/leftMembers.d.ts
type LeftMembers = {
  /**
   * Users who left. Array of source user objects.
   */
  members: Array<UserSource>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/leftMembershipContent.d.ts
type LeftMembershipContent = MembershipContentBase & {
  type: "left";
  /**
   * The ID of the membership that the user left. This is defined for each membership.
   */
  membershipId: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/locationMessageContent.d.ts
type LocationMessageContent = MessageContentBase & {
  type: "location";
  /**
   * Title
   */
  title?: string;
  /**
   * Address
   */
  address?: string;
  /**
   * Latitude
   */
  latitude: number;
  /**
   * Longitude
   */
  longitude: number;
  /**
   * Token used to mark the message as read.
   */
  markAsReadToken?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/memberJoinedEvent.d.ts
type MemberJoinedEvent = EventBase & {
  type: "memberJoined";
  /**
   * Reply token used to send reply message to this event
   */
  replyToken: string;
  /**
   */
  joined: JoinedMembers;
};
declare namespace MemberJoinedEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/memberLeftEvent.d.ts
type MemberLeftEvent = EventBase & {
  type: "memberLeft";
  /**
   */
  left: LeftMembers;
};
declare namespace MemberLeftEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/membershipContent.d.ts
type MembershipContent = JoinedMembershipContent | LeftMembershipContent | RenewedMembershipContent;
/**
 * Content of the membership event.
 */
type MembershipContentBase = {
  /**
   * Type of membership event.
   */
  type: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/membershipEvent.d.ts
type MembershipEvent = EventBase & {
  type: "membership";
  /**
   * Reply token used to send reply message to this event
   */
  replyToken: string;
  /**
   */
  membership: MembershipContent;
};
declare namespace MembershipEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/mentionee.d.ts
type Mentionee = AllMentionee | UserMentionee;
type MentioneeBase = {
  /**
   * Mentioned target.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-text">type Documentation</a>
   */
  type: string;
  /**
   * Index position of the user mention for a character in text, with the first character being at position 0.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-text">index Documentation</a>
   */
  index: number;
  /**
   * The length of the text of the mentioned user. For a mention @example, 8 is the length.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-text">length Documentation</a>
   */
  length: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/mention.d.ts
type Mention = {
  /**
   * Array of one or more mention objects. Max: 20 mentions
   */
  mentionees: Array<Mentionee>;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/messageContent.d.ts
type MessageContent = AudioMessageContent | FileMessageContent | ImageMessageContent | LocationMessageContent | StickerMessageContent | TextMessageContent | VideoMessageContent;
type MessageContentBase = {
  /**
   * Type
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#message-event">type Documentation</a>
   */
  type: string;
  /**
   * Message ID
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#message-event">id Documentation</a>
   */
  id: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/messageEvent.d.ts
type MessageEvent = EventBase & {
  type: "message";
  /**
   */
  replyToken?: string;
  /**
   */
  message: MessageContent;
};
declare namespace MessageEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/moduleContent.d.ts
type ModuleContent = AttachedModuleContent | DetachedModuleContent;
type ModuleContentBase = {
  /**
   * Type
   */
  type: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/moduleEvent.d.ts
type ModuleEvent = EventBase & {
  type: "module";
  /**
   */
  module: ModuleContent;
};
declare namespace ModuleEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/pnpDelivery.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * A delivery object containing a hashed phone number string or a string specified by `X-Line-Delivery-Tag` header
 */
type PnpDelivery = {
  /**
   * A hashed phone number string or a string specified by `X-Line-Delivery-Tag` header
   */
  data: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/pnpDeliveryCompletionEvent.d.ts
type PnpDeliveryCompletionEvent = EventBase & {
  type: "delivery";
  /**
   */
  delivery: PnpDelivery;
};
declare namespace PnpDeliveryCompletionEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/postbackContent.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type PostbackContent = {
  /**
   * Postback data
   */
  data: string;
  /**
   */
  params?: {
    [key: string]: string;
  };
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/postbackEvent.d.ts
type PostbackEvent = EventBase & {
  type: "postback";
  /**
   * Reply token used to send reply message to this event
   */
  replyToken?: string;
  /**
   */
  postback: PostbackContent;
};
declare namespace PostbackEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/renewedMembershipContent.d.ts
type RenewedMembershipContent = MembershipContentBase & {
  type: "renewed";
  /**
   * The ID of the membership that the user renewed. This is defined for each membership.
   */
  membershipId: number;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/roomSource.d.ts
type RoomSource = SourceBase & {
  type: "room";
  /**
   * ID of the source user. Only included in message events. Only users of LINE for iOS and LINE for Android are included in userId.
   */
  userId?: string;
  /**
   * Room ID of the source multi-person chat
   */
  roomId: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/stickerMessageContent.d.ts
type StickerMessageContent = MessageContentBase & {
  type: "sticker";
  /**
   * Package ID
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-sticker">packageId Documentation</a>
   */
  packageId: string;
  /**
   * Sticker ID
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-sticker">stickerId Documentation</a>
   */
  stickerId: string;
  /**
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-sticker">stickerResourceType Documentation</a>
   */
  stickerResourceType: StickerMessageContent.StickerResourceTypeEnum;
  /**
   * Array of up to 15 keywords describing the sticker. If a sticker has 16 or more keywords, a random selection of 15 keywords will be returned. The keyword selection is random for each event, so different keywords may be returned for the same sticker.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-sticker">keywords Documentation</a>
   */
  keywords?: Array<string>;
  /**
   * Any text entered by the user. This property is only included for message stickers. Max character limit: 100
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-sticker">text Documentation</a>
   */
  text?: string;
  /**
   * Quote token to quote this message.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-sticker">quoteToken Documentation</a>
   */
  quoteToken: string;
  /**
   * Message ID of a quoted message. Only included when the received message quotes a past message.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-sticker">quotedMessageId Documentation</a>
   */
  quotedMessageId?: string;
  /**
   * Token used to mark the message as read.
   *
   * @see <a href="https://developers.line.biz/en/reference/messaging-api/#wh-sticker">markAsReadToken Documentation</a>
   */
  markAsReadToken?: string;
};
declare namespace StickerMessageContent {
  type StickerResourceTypeEnum = "STATIC" | "ANIMATION" | "SOUND" | "ANIMATION_SOUND" | "POPUP" | "POPUP_SOUND" | "CUSTOM" | "MESSAGE" | "NAME_TEXT" | "PER_STICKER_TEXT";
}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/textMessageContent.d.ts
type TextMessageContent = MessageContentBase & {
  type: "text";
  /**
   * Message text.
   */
  text: string;
  /**
   * Array of one or more LINE emoji objects. Only included in the message event when the text property contains a LINE emoji.
   */
  emojis?: Array<Emoji>;
  /**
   */
  mention?: Mention;
  /**
   * Quote token to quote this message.
   */
  quoteToken: string;
  /**
   * Message ID of a quoted message. Only included when the received message quotes a past message.
   */
  quotedMessageId?: string;
  /**
   * Token used to mark the message as read.
   */
  markAsReadToken?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/unfollowEvent.d.ts
type UnfollowEvent = EventBase & {
  type: "unfollow";
};
declare namespace UnfollowEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/unsendDetail.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type UnsendDetail = {
  /**
   * The message ID of the unsent message
   */
  messageId: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/unsendEvent.d.ts
type UnsendEvent = EventBase & {
  type: "unsend";
  /**
   */
  unsend: UnsendDetail;
};
declare namespace UnsendEvent {}
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/userMentionee.d.ts
type UserMentionee = MentioneeBase & {
  type: "user";
  /**
   * User ID of the mentioned user. Only included if mention.mentions[].type is user and the user consents to the LINE Official Account obtaining their user profile information.
   */
  userId?: string;
  /**
   * Whether the mentioned user is the bot that receives the webhook.
   */
  isSelf?: boolean;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/videoMessageContent.d.ts
type VideoMessageContent = MessageContentBase & {
  type: "video";
  /**
   * Length of video file (milliseconds)
   */
  duration?: number;
  /**
   */
  contentProvider: ContentProvider;
  /**
   * Quote token to quote this message.
   */
  quoteToken: string;
  /**
   * Token used to mark the message as read.
   */
  markAsReadToken?: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/videoPlayComplete.d.ts
/**
 * Webhook Type Definition
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
type VideoPlayComplete = {
  /**
   * ID used to identify a video. Returns the same value as the trackingId assigned to the video message.
   */
  trackingId: string;
};
//#endregion
//#region node_modules/@line/bot-sdk/dist/webhook/model/videoPlayCompleteEvent.d.ts
type VideoPlayCompleteEvent = EventBase & {
  type: "videoPlayComplete";
  /**
   * Reply token used to send reply message to this event
   */
  replyToken: string;
  /**
   */
  videoPlayComplete: VideoPlayComplete;
};
declare namespace VideoPlayCompleteEvent {}
//#endregion
//#region extensions/line/src/actions.d.ts
type Action$2 = Action$3;
/**
 * Create a message action (sends text when tapped)
 */
declare function messageAction(label: string, text?: string): Action$2;
/**
 * Create a URI action (opens a URL when tapped)
 */
declare function uriAction(label: string, uri: string): Action$2;
/**
 * Create a postback action (sends data to webhook when tapped)
 */
declare function postbackAction(label: string, data: string, displayText?: string): Action$2;
/**
 * Create a datetime picker action
 */
declare function datetimePickerAction(label: string, data: string, mode: "date" | "time" | "datetime", options?: {
  initial?: string;
  max?: string;
  min?: string;
}): Action$2;
//#endregion
//#region extensions/line/src/template-messages.d.ts
type TemplateMessage$1 = TemplateMessage$2;
type ConfirmTemplate = ConfirmTemplate$1;
type ButtonsTemplate = ButtonsTemplate$1;
type CarouselTemplate = CarouselTemplate$1;
type CarouselColumn = CarouselColumn$1;
type ImageCarouselTemplate = ImageCarouselTemplate$1;
type ImageCarouselColumn = ImageCarouselColumn$1;
/**
 * Create a confirm template (yes/no style dialog)
 */
declare function createConfirmTemplate(text: string, confirmAction: Action$2, cancelAction: Action$2, altText?: string): TemplateMessage$1;
/**
 * Create a button template with title, text, and action buttons
 */
declare function createButtonTemplate(title: string, text: string, actions: Action$2[], options?: {
  thumbnailImageUrl?: string;
  imageAspectRatio?: "rectangle" | "square";
  imageSize?: "cover" | "contain";
  imageBackgroundColor?: string;
  defaultAction?: Action$2;
  altText?: string;
}): TemplateMessage$1;
/**
 * Create a carousel template with multiple columns
 */
declare function createTemplateCarousel(columns: CarouselColumn[], options?: {
  imageAspectRatio?: "rectangle" | "square";
  imageSize?: "cover" | "contain";
  altText?: string;
}): TemplateMessage$1;
/**
 * Create a carousel column for use with createTemplateCarousel
 */
declare function createCarouselColumn(params: {
  title?: string;
  text: string;
  actions: Action$2[];
  thumbnailImageUrl?: string;
  imageBackgroundColor?: string;
  defaultAction?: Action$2;
}): CarouselColumn;
/**
 * Create an image carousel template (simpler, image-focused carousel)
 */
declare function createImageCarousel(columns: ImageCarouselColumn[], altText?: string): TemplateMessage$1;
/**
 * Create an image carousel column for use with createImageCarousel
 */
declare function createImageCarouselColumn(imageUrl: string, action: Action$2): ImageCarouselColumn;
/**
 * Create a simple yes/no confirmation dialog
 */
declare function createYesNoConfirm(question: string, options?: {
  yesText?: string;
  noText?: string;
  yesData?: string;
  noData?: string;
  altText?: string;
}): TemplateMessage$1;
/**
 * Create a button menu with simple text buttons
 */
declare function createButtonMenu(title: string, text: string, buttons: Array<{
  label: string;
  text?: string;
}>, options?: {
  thumbnailImageUrl?: string;
  altText?: string;
}): TemplateMessage$1;
/**
 * Create a button menu with URL links
 */
declare function createLinkMenu(title: string, text: string, links: Array<{
  label: string;
  url: string;
}>, options?: {
  thumbnailImageUrl?: string;
  altText?: string;
}): TemplateMessage$1;
/**
 * Create a simple product/item carousel
 */
declare function createProductCarousel(products: Array<{
  title: string;
  description: string;
  imageUrl?: string;
  price?: string;
  actionLabel?: string;
  actionUrl?: string;
  actionData?: string;
}>, altText?: string): TemplateMessage$1;
/**
 * Convert a TemplateMessagePayload from ReplyPayload to a LINE TemplateMessage
 */
declare function buildTemplateMessageFromPayload(payload: LineTemplateMessagePayload): TemplateMessage$1 | null;
//#endregion
//#region extensions/line/src/send.d.ts
type Message = Message$1;
type TextMessage = TextMessage$1;
type ImageMessage = ImageMessage$1;
type VideoMessage = VideoMessage$1 & {
  trackingId?: string;
};
type AudioMessage = AudioMessage$1;
type LocationMessage = LocationMessage$1;
type FlexContainer$1 = FlexContainer$2;
type TemplateMessage = TemplateMessage$2;
type QuickReply = QuickReply$1;
interface LineSendOpts {
  cfg: OpenClawConfig;
  channelAccessToken?: string;
  accountId?: string;
  verbose?: boolean;
  mediaUrl?: string;
  mediaKind?: "image" | "video" | "audio";
  previewImageUrl?: string;
  durationMs?: number;
  trackingId?: string;
  replyToken?: string;
}
type LineClientOpts = Pick<LineSendOpts, "cfg" | "channelAccessToken" | "accountId">;
type LinePushOpts = Pick<LineSendOpts, "cfg" | "channelAccessToken" | "accountId" | "verbose">;
declare function createImageMessage(originalContentUrl: string, previewImageUrl?: string): ImageMessage;
declare function createVideoMessage(originalContentUrl: string, previewImageUrl: string, trackingId?: string): VideoMessage;
declare function createAudioMessage(originalContentUrl: string, durationMs: number): AudioMessage;
declare function createLocationMessage(location: {
  title: string;
  address: string;
  latitude: number;
  longitude: number;
}): LocationMessage;
declare function sendMessageLine(to: string, text: string, opts: LineSendOpts): Promise<LineSendResult>;
declare function pushMessageLine(to: string, text: string, opts: LineSendOpts): Promise<LineSendResult>;
declare function replyMessageLine(replyToken: string, messages: Message[], opts: LinePushOpts): Promise<void>;
declare function pushMessagesLine(to: string, messages: Message[], opts: LinePushOpts): Promise<LineSendResult>;
declare function createFlexMessage(altText: string, contents: FlexContainer$2): FlexMessage$1;
declare function pushImageMessage(to: string, originalContentUrl: string, previewImageUrl: string | undefined, opts: LinePushOpts): Promise<LineSendResult>;
declare function pushLocationMessage(to: string, location: {
  title: string;
  address: string;
  latitude: number;
  longitude: number;
}, opts: LinePushOpts): Promise<LineSendResult>;
declare function pushFlexMessage(to: string, altText: string, contents: FlexContainer$1, opts: LinePushOpts): Promise<LineSendResult>;
declare function pushTemplateMessage(to: string, template: TemplateMessage, opts: LinePushOpts): Promise<LineSendResult>;
declare function pushTextMessageWithQuickReplies(to: string, text: string, quickReplyLabels: string[], opts: LinePushOpts): Promise<LineSendResult>;
declare function createQuickReplyItems(labels: string[]): QuickReply;
declare function createTextMessageWithQuickReplies(text: string, quickReplyLabels: string[]): TextMessage & {
  quickReply: QuickReply;
};
declare function showLoadingAnimation(chatId: string, opts: LineClientOpts & {
  loadingSeconds?: number;
}): Promise<void>;
declare function getUserProfile(userId: string, opts: LineClientOpts & {
  useCache?: boolean;
}): Promise<{
  displayName: string;
  pictureUrl?: string;
} | null>;
declare function getUserDisplayName(userId: string, opts: LineClientOpts): Promise<string>;
//#endregion
//#region extensions/line/src/monitor.d.ts
interface MonitorLineProviderOptions {
  channelAccessToken: string;
  channelSecret: string;
  accountId?: string;
  config: OpenClawConfig;
  runtime: RuntimeEnv;
  abortSignal?: AbortSignal;
  webhookUrl?: string;
  webhookPath?: string;
}
interface LineProviderMonitor {
  account: ResolvedLineAccount;
  handleWebhook: (body: CallbackRequest) => Promise<void>;
  stop: () => void;
}
declare function monitorLineProvider(opts: MonitorLineProviderOptions): Promise<LineProviderMonitor>;
//#endregion
//#region extensions/line/src/runtime.d.ts
type LineChannelRuntime = {
  buildTemplateMessageFromPayload?: typeof buildTemplateMessageFromPayload;
  createQuickReplyItems?: typeof createQuickReplyItems;
  monitorLineProvider?: typeof monitorLineProvider;
  pushFlexMessage?: typeof pushFlexMessage;
  pushLocationMessage?: typeof pushLocationMessage;
  pushMessageLine?: typeof pushMessageLine;
  pushMessagesLine?: typeof pushMessagesLine;
  pushTemplateMessage?: typeof pushTemplateMessage;
  pushTextMessageWithQuickReplies?: typeof pushTextMessageWithQuickReplies;
  resolveLineAccount?: typeof resolveLineAccount;
  sendMessageLine?: typeof sendMessageLine;
};
type LineRuntime = PluginRuntime & {
  channel: PluginRuntime["channel"] & {
    line?: LineChannelRuntime;
  };
};
declare const setLineRuntime: (next: LineRuntime) => void, clearLineRuntime: () => void, getLineRuntime: () => LineRuntime;
//#endregion
//#region extensions/line/src/bot-access.d.ts
type NormalizedAllowFrom = {
  entries: string[];
  hasWildcard: boolean;
  hasEntries: boolean;
};
declare const normalizeAllowFrom: (list?: Array<string | number>) => NormalizedAllowFrom;
//#endregion
//#region extensions/line/src/download.d.ts
interface DownloadResult {
  path: string;
  contentType?: string;
  size: number;
}
declare function downloadLineMedia(messageId: string, channelAccessToken: string, maxBytes?: number): Promise<DownloadResult>;
//#endregion
//#region extensions/line/src/probe.d.ts
declare function probeLineBot(channelAccessToken: string, timeoutMs?: number): Promise<LineProbeResult>;
//#endregion
//#region extensions/line/src/reply-payload-transform.d.ts
/**
 * Parse LINE-specific directives from text and extract them into ReplyPayload fields.
 *
 * Supported directives:
 * - [[quick_replies: option1, option2, option3]]
 * - [[location: title | address | latitude | longitude]]
 * - [[confirm: question | yes_label | no_label]]
 * - [[buttons: title | text | btn1:data1, btn2:data2]]
 * - [[media_player: title | artist | source | imageUrl | playing/paused]]
 * - [[event: title | date | time | location | description]]
 * - [[agenda: title | event1_title:event1_time, event2_title:event2_time, ...]]
 * - [[device: name | type | status | ctrl1:data1, ctrl2:data2]]
 * - [[appletv_remote: name | status]]
 */
declare function parseLineDirectives(payload: ReplyPayload): ReplyPayload;
declare function hasLineDirectives(text: string): boolean;
//#endregion
//#region extensions/line/src/channel-access-token.d.ts
declare function resolveLineChannelAccessToken(explicit: string | undefined, params: {
  accountId: string;
  channelAccessToken: string;
}): string;
//#endregion
//#region extensions/line/src/config-schema.d.ts
declare const LineConfigSchema: ZodObject<{
  enabled: ZodOptional<ZodBoolean>;
  channelAccessToken: ZodOptional<ZodString>;
  channelSecret: ZodOptional<ZodString>;
  tokenFile: ZodOptional<ZodString>;
  secretFile: ZodOptional<ZodString>;
  name: ZodOptional<ZodString>;
  allowFrom: ZodOptional<ZodArray<ZodUnion<readonly [ZodString, ZodNumber]>>>;
  groupAllowFrom: ZodOptional<ZodArray<ZodUnion<readonly [ZodString, ZodNumber]>>>;
  dmPolicy: ZodDefault<ZodOptional<ZodEnum<{
    disabled: "disabled";
    allowlist: "allowlist";
    pairing: "pairing";
    open: "open";
  }>>>;
  groupPolicy: ZodDefault<ZodOptional<ZodEnum<{
    disabled: "disabled";
    allowlist: "allowlist";
    open: "open";
  }>>>;
  responsePrefix: ZodOptional<ZodString>;
  mediaMaxMb: ZodOptional<ZodNumber>;
  webhookPath: ZodOptional<ZodString>;
  threadBindings: ZodOptional<ZodObject<{
    enabled: ZodOptional<ZodBoolean>;
    idleHours: ZodOptional<ZodNumber>;
    maxAgeHours: ZodOptional<ZodNumber>;
    spawnSessions: ZodOptional<ZodBoolean>;
    defaultSpawnContext: ZodOptional<ZodEnum<{
      isolated: "isolated";
      fork: "fork";
    }>>;
    spawnSubagentSessions: ZodOptional<ZodBoolean>;
    spawnAcpSessions: ZodOptional<ZodBoolean>;
  }, $strict>>;
  accounts: ZodOptional<ZodRecord<ZodString, ZodOptional<ZodObject<{
    enabled: ZodOptional<ZodBoolean>;
    channelAccessToken: ZodOptional<ZodString>;
    channelSecret: ZodOptional<ZodString>;
    tokenFile: ZodOptional<ZodString>;
    secretFile: ZodOptional<ZodString>;
    name: ZodOptional<ZodString>;
    allowFrom: ZodOptional<ZodArray<ZodUnion<readonly [ZodString, ZodNumber]>>>;
    groupAllowFrom: ZodOptional<ZodArray<ZodUnion<readonly [ZodString, ZodNumber]>>>;
    dmPolicy: ZodDefault<ZodOptional<ZodEnum<{
      disabled: "disabled";
      allowlist: "allowlist";
      pairing: "pairing";
      open: "open";
    }>>>;
    groupPolicy: ZodDefault<ZodOptional<ZodEnum<{
      disabled: "disabled";
      allowlist: "allowlist";
      open: "open";
    }>>>;
    responsePrefix: ZodOptional<ZodString>;
    mediaMaxMb: ZodOptional<ZodNumber>;
    webhookPath: ZodOptional<ZodString>;
    threadBindings: ZodOptional<ZodObject<{
      enabled: ZodOptional<ZodBoolean>;
      idleHours: ZodOptional<ZodNumber>;
      maxAgeHours: ZodOptional<ZodNumber>;
      spawnSessions: ZodOptional<ZodBoolean>;
      defaultSpawnContext: ZodOptional<ZodEnum<{
        isolated: "isolated";
        fork: "fork";
      }>>;
      spawnSubagentSessions: ZodOptional<ZodBoolean>;
      spawnAcpSessions: ZodOptional<ZodBoolean>;
    }, $strict>>;
    groups: ZodOptional<ZodRecord<ZodString, ZodOptional<ZodObject<{
      enabled: ZodOptional<ZodBoolean>;
      allowFrom: ZodOptional<ZodArray<ZodUnion<readonly [ZodString, ZodNumber]>>>;
      requireMention: ZodOptional<ZodBoolean>;
      systemPrompt: ZodOptional<ZodString>;
      skills: ZodOptional<ZodArray<ZodString>>;
    }, $strict>>>>;
  }, $strict>>>>;
  defaultAccount: ZodOptional<ZodString>;
  groups: ZodOptional<ZodRecord<ZodString, ZodOptional<ZodObject<{
    enabled: ZodOptional<ZodBoolean>;
    allowFrom: ZodOptional<ZodArray<ZodUnion<readonly [ZodString, ZodNumber]>>>;
    requireMention: ZodOptional<ZodBoolean>;
    systemPrompt: ZodOptional<ZodString>;
    skills: ZodOptional<ZodArray<ZodString>>;
  }, $strict>>>>;
}, $strict>;
declare const LineChannelConfigSchema: ChannelConfigSchema;
type LineConfigSchemaType = output<typeof LineConfigSchema>;
//#endregion
//#region extensions/line/src/flex-templates/types.d.ts
type FlexContainer = FlexContainer$2;
type FlexBubble = FlexBubble$1;
type FlexCarousel = FlexCarousel$1;
type FlexBox = FlexBox$1;
type FlexText = FlexText$1;
type FlexImage = FlexImage$1;
type FlexButton = FlexButton$1;
type FlexComponent = FlexComponent$1;
type Action$1 = Action$3;
interface ListItem {
  title: string;
  subtitle?: string;
  action?: Action$1;
}
interface CardAction {
  label: string;
  action: Action$1;
}
//#endregion
//#region extensions/line/src/flex-templates/basic-cards.d.ts
/**
 * Create an info card with title, body, and optional footer
 *
 * Editorial design: Clean hierarchy with accent bar, generous spacing,
 * and subtle background zones for visual separation.
 */
declare function createInfoCard(title: string, body: string, footer?: string): FlexBubble;
/**
 * Create a list card with title and multiple items
 *
 * Editorial design: Numbered/bulleted list with clear visual hierarchy,
 * accent dots for each item, and generous spacing.
 */
declare function createListCard(title: string, items: ListItem[]): FlexBubble;
/**
 * Create an image card with image, title, and optional body text
 */
declare function createImageCard(imageUrl: string, title: string, body?: string, options?: {
  aspectRatio?: "1:1" | "1.51:1" | "1.91:1" | "4:3" | "16:9" | "20:13" | "2:1" | "3:1";
  aspectMode?: "cover" | "fit";
  action?: Action$1;
}): FlexBubble;
/**
 * Create an action card with title, body, and action buttons
 */
declare function createActionCard(title: string, body: string, actions: CardAction[], options?: {
  imageUrl?: string;
  aspectRatio?: "1:1" | "1.51:1" | "1.91:1" | "4:3" | "16:9" | "20:13" | "2:1" | "3:1";
}): FlexBubble;
/**
 * Create a carousel container from multiple bubbles
 * LINE allows max 12 bubbles in a carousel
 */
declare function createCarousel(bubbles: FlexBubble[]): FlexCarousel;
/**
 * Create a notification bubble (for alerts, status updates)
 *
 * Editorial design: Bold status indicator with accent color,
 * clear typography, optional icon for context.
 */
declare function createNotificationBubble(text: string, options?: {
  icon?: string;
  type?: "info" | "success" | "warning" | "error";
  title?: string;
}): FlexBubble;
//#endregion
//#region extensions/line/src/flex-templates/schedule-cards.d.ts
/**
 * Create a receipt/summary card (for orders, transactions, data tables)
 *
 * Editorial design: Clean table layout with alternating row backgrounds,
 * prominent total section, and clear visual hierarchy.
 */
declare function createReceiptCard(params: {
  title: string;
  subtitle?: string;
  items: Array<{
    name: string;
    value: string;
    highlight?: boolean;
  }>;
  total?: {
    label: string;
    value: string;
  };
  footer?: string;
}): FlexBubble;
/**
 * Create a calendar event card (for meetings, appointments, reminders)
 *
 * Editorial design: Date as hero, strong typographic hierarchy,
 * color-blocked zones, full text wrapping for readability.
 */
declare function createEventCard(params: {
  title: string;
  date: string;
  time?: string;
  location?: string;
  description?: string;
  calendar?: string;
  isAllDay?: boolean;
  action?: Action$1;
}): FlexBubble;
/**
 * Create a calendar agenda card showing multiple events
 *
 * Editorial timeline design: Time-focused left column with event details
 * on the right. Visual accent bars indicate event priority/recency.
 */
declare function createAgendaCard(params: {
  title: string;
  subtitle?: string;
  events: Array<{
    title: string;
    time?: string;
    location?: string;
    calendar?: string;
    isNow?: boolean;
  }>;
  footer?: string;
}): FlexBubble;
//#endregion
//#region extensions/line/src/flex-templates/media-control-cards.d.ts
/**
 * Create a media player card for Sonos, Spotify, Apple Music, etc.
 *
 * Editorial design: Album art hero with gradient overlay for text,
 * prominent now-playing indicator, refined playback controls.
 */
declare function createMediaPlayerCard(params: {
  title: string;
  subtitle?: string;
  source?: string;
  imageUrl?: string;
  isPlaying?: boolean;
  progress?: string;
  controls?: {
    previous?: {
      data: string;
    };
    play?: {
      data: string;
    };
    pause?: {
      data: string;
    };
    next?: {
      data: string;
    };
  };
  extraActions?: Array<{
    label: string;
    data: string;
  }>;
}): FlexBubble;
/**
 * Create an Apple TV remote card with a D-pad and control rows.
 */
declare function createAppleTvRemoteCard(params: {
  deviceName: string;
  status?: string;
  actionData: {
    up: string;
    down: string;
    left: string;
    right: string;
    select: string;
    menu: string;
    home: string;
    play: string;
    pause: string;
    volumeUp: string;
    volumeDown: string;
    mute: string;
  };
}): FlexBubble;
/**
 * Create a device control card for Apple TV, smart home devices, etc.
 *
 * Editorial design: Device-focused header with status indicator,
 * clean control grid with clear visual hierarchy.
 */
declare function createDeviceControlCard(params: {
  deviceName: string;
  deviceType?: string;
  status?: string;
  isOnline?: boolean;
  imageUrl?: string;
  controls: Array<{
    label: string;
    icon?: string;
    data: string;
    style?: "primary" | "secondary";
  }>;
}): FlexBubble;
//#endregion
//#region extensions/line/src/flex-templates/message.d.ts
/**
 * Wrap a FlexContainer in a FlexMessage
 */
declare function toFlexMessage(altText: string, contents: FlexContainer): FlexMessage$1;
//#endregion
//#region extensions/line/src/markdown-to-line.d.ts
type FlexMessage = FlexMessage$1;
interface ProcessedLineMessage {
  /** The processed text with markdown stripped */
  text: string;
  /** Flex messages extracted from tables/code blocks */
  flexMessages: FlexMessage[];
}
/**
 * Detect and extract markdown tables from text
 */
declare function extractMarkdownTables(text: string): {
  tables: MarkdownTable[];
  textWithoutTables: string;
};
interface MarkdownTable {
  headers: string[];
  rows: string[][];
}
/**
 * Convert a markdown table to a LINE Flex Message bubble
 */
declare function convertTableToFlexBubble(table: MarkdownTable): FlexBubble;
/**
 * Detect and extract code blocks from text
 */
declare function extractCodeBlocks(text: string): {
  codeBlocks: CodeBlock[];
  textWithoutCode: string;
};
interface CodeBlock {
  language?: string;
  code: string;
}
/**
 * Convert a code block to a LINE Flex Message bubble
 */
declare function convertCodeBlockToFlexBubble(block: CodeBlock): FlexBubble;
/**
 * Extract markdown links from text
 */
declare function extractLinks(text: string): {
  links: MarkdownLink[];
  textWithLinks: string;
};
interface MarkdownLink {
  text: string;
  url: string;
}
/**
 * Create a Flex Message with tappable link buttons
 */
declare function convertLinksToFlexBubble(links: MarkdownLink[]): FlexBubble;
/**
 * Main function: Process text for LINE output
 * - Extracts tables → Flex Messages
 * - Extracts code blocks → Flex Messages
 * - Strips remaining markdown
 * - Returns processed text + Flex Messages
 */
declare function processLineMessage(text: string): ProcessedLineMessage;
/**
 * Check if text contains markdown that needs conversion
 */
declare function hasMarkdownToConvert(text: string): boolean;
//#endregion
//#region extensions/line/src/signature.d.ts
declare function validateLineSignature(body: string, signature: string, channelSecret: string): boolean;
//#endregion
//#region extensions/line/src/webhook-node.d.ts
declare function readLineWebhookRequestBody(req: IncomingMessage, maxBytes?: number, timeoutMs?: number): Promise<string>;
type ReadBodyFn = (req: IncomingMessage, maxBytes: number, timeoutMs?: number) => Promise<string>;
declare function createLineNodeWebhookHandler(params: {
  channelSecret: string;
  bot: {
    handleWebhook: (body: CallbackRequest) => Promise<void>;
  };
  runtime: RuntimeEnv;
  readBody?: ReadBodyFn;
  maxBodyBytes?: number;
  onRequestAuthenticated?: () => void;
}): (req: IncomingMessage, res: ServerResponse) => Promise<void>;
//#endregion
//#region extensions/line/src/webhook.d.ts
interface LineWebhookOptions {
  channelSecret: string;
  onEvents: (body: CallbackRequest) => Promise<void>;
  runtime?: RuntimeEnv;
}
declare function createLineWebhookMiddleware(options: LineWebhookOptions): (req: Request, res: Response, _next: NextFunction) => Promise<void>;
interface StartLineWebhookOptions {
  channelSecret: string;
  onEvents: (body: CallbackRequest) => Promise<void>;
  runtime?: RuntimeEnv;
  path?: string;
}
declare function startLineWebhook(options: StartLineWebhookOptions): {
  path: string;
  handler: (req: Request, res: Response, _next: NextFunction) => Promise<void>;
};
//#endregion
//#region extensions/line/src/webhook-utils.d.ts
declare function parseLineWebhookBody(rawBody: string): CallbackRequest | null;
//#endregion
//#region extensions/line/src/rich-menu.d.ts
type RichMenuRequest = RichMenuRequest$1;
type RichMenuResponse = RichMenuResponse$1;
type RichMenuArea = RichMenuArea$1;
type Action = Action$3;
interface RichMenuSize {
  width: 2500;
  height: 1686 | 843;
}
interface RichMenuAreaRequest {
  bounds: {
    x: number;
    y: number;
    width: number;
    height: number;
  };
  action: Action;
}
interface CreateRichMenuParams {
  size: RichMenuSize;
  selected?: boolean;
  name: string;
  chatBarText: string;
  areas: RichMenuAreaRequest[];
}
interface RichMenuOpts {
  cfg: OpenClawConfig;
  channelAccessToken?: string;
  accountId?: string;
  verbose?: boolean;
  mediaLocalRoots?: readonly string[];
}
declare function createRichMenu(menu: CreateRichMenuParams, opts: RichMenuOpts): Promise<string>;
declare function uploadRichMenuImage(richMenuId: string, imagePath: string, opts: RichMenuOpts): Promise<void>;
declare function setDefaultRichMenu(richMenuId: string, opts: RichMenuOpts): Promise<void>;
declare function cancelDefaultRichMenu(opts: RichMenuOpts): Promise<void>;
declare function getDefaultRichMenuId(opts: RichMenuOpts): Promise<string | null>;
declare function linkRichMenuToUser(userId: string, richMenuId: string, opts: RichMenuOpts): Promise<void>;
declare function linkRichMenuToUsers(userIds: string[], richMenuId: string, opts: RichMenuOpts): Promise<void>;
declare function unlinkRichMenuFromUser(userId: string, opts: RichMenuOpts): Promise<void>;
declare function unlinkRichMenuFromUsers(userIds: string[], opts: RichMenuOpts): Promise<void>;
declare function getRichMenuIdOfUser(userId: string, opts: RichMenuOpts): Promise<string | null>;
declare function getRichMenuList(opts: RichMenuOpts): Promise<RichMenuResponse[]>;
declare function getRichMenu(richMenuId: string, opts: RichMenuOpts): Promise<RichMenuResponse | null>;
declare function deleteRichMenu(richMenuId: string, opts: RichMenuOpts): Promise<void>;
declare function createRichMenuAlias(richMenuId: string, aliasId: string, opts: RichMenuOpts): Promise<void>;
declare function deleteRichMenuAlias(aliasId: string, opts: RichMenuOpts): Promise<void>;
declare function createGridLayout(height: 1686 | 843, actions: [Action, Action, Action, Action, Action, Action]): RichMenuAreaRequest[];
declare function createDefaultMenuConfig(): CreateRichMenuParams;
//#endregion
export { createImageCard as $, createButtonTemplate as $t, readLineWebhookRequestBody as A, createTextMessageWithQuickReplies as At, extractLinks as B, pushTextMessageWithQuickReplies as Bt, uploadRichMenuImage as C, setLineRuntime as Ct, createLineWebhookMiddleware as D, createImageMessage as Dt, StartLineWebhookOptions as E, createFlexMessage as Et, ProcessedLineMessage as F, pushImageMessage as Ft, createAppleTvRemoteCard as G, CarouselColumn as Gt, hasMarkdownToConvert as H, sendMessageLine as Ht, convertCodeBlockToFlexBubble as I, pushLocationMessage as It, createAgendaCard as J, ImageCarouselColumn as Jt, createDeviceControlCard as K, CarouselTemplate as Kt, convertLinksToFlexBubble as L, pushMessageLine as Lt, CodeBlock as M, getUserDisplayName as Mt, MarkdownLink as N, getUserProfile as Nt, startLineWebhook as O, createLocationMessage as Ot, MarkdownTable as P, pushFlexMessage as Pt, createCarousel as Q, createButtonMenu as Qt, convertTableToFlexBubble as R, pushMessagesLine as Rt, unlinkRichMenuFromUsers as S, normalizeAllowFrom as St, LineWebhookOptions as T, createAudioMessage as Tt, processLineMessage as U, showLoadingAnimation as Ut, extractMarkdownTables as V, replyMessageLine as Vt, toFlexMessage as W, ButtonsTemplate as Wt, createReceiptCard as X, TemplateMessage$1 as Xt, createEventCard as Y, ImageCarouselTemplate as Yt, createActionCard as Z, buildTemplateMessageFromPayload as Zt, getRichMenuList as _, hasLineDirectives as _t, RichMenuResponse as a, createProductCarousel as an, FlexBubble as at, setDefaultRichMenu as b, downloadLineMedia as bt, createDefaultMenuConfig as c, Action$2 as cn, FlexComponent as ct, createRichMenuAlias as d, postbackAction as dn, FlexText as dt, createCarouselColumn as en, createInfoCard as et, deleteRichMenu as f, uriAction as fn, ListItem as ft, getRichMenuIdOfUser as g, resolveLineChannelAccessToken as gt, getRichMenu as h, LineConfigSchemaType as ht, RichMenuRequest as i, createLinkMenu as in, FlexBox as it, validateLineSignature as j, createVideoMessage as jt, createLineNodeWebhookHandler as k, createQuickReplyItems as kt, createGridLayout as l, datetimePickerAction as ln, FlexContainer as lt, getDefaultRichMenuId as m, LineConfigSchema as mt, RichMenuArea as n, createImageCarousel as nn, createNotificationBubble as nt, RichMenuSize as o, createTemplateCarousel as on, FlexButton as ot, deleteRichMenuAlias as p, LineChannelConfigSchema as pt, createMediaPlayerCard as q, ConfirmTemplate as qt, RichMenuAreaRequest as r, createImageCarouselColumn as rn, CardAction as rt, cancelDefaultRichMenu as s, createYesNoConfirm as sn, FlexCarousel as st, CreateRichMenuParams as t, createConfirmTemplate as tn, createListCard as tt, createRichMenu as u, messageAction as un, FlexImage as ut, linkRichMenuToUser as v, parseLineDirectives as vt, parseLineWebhookBody as w, monitorLineProvider as wt, unlinkRichMenuFromUser as x, NormalizedAllowFrom as xt, linkRichMenuToUsers as y, probeLineBot as yt, extractCodeBlocks as z, pushTemplateMessage as zt };