import 'reflect-metadata'; import type { ChannelMessage } from 'mezon-sdk'; import type { TextChannel } from 'mezon-sdk/dist/cjs/mezon-client/structures/TextChannel'; import type { User as MezonUser } from 'mezon-sdk/dist/cjs/mezon-client/structures/User'; export declare const NEZON_PARAMS_METADATA = "nezon:params"; export declare function Context(): ParameterDecorator; export declare function ChannelMessagePayload(key?: K): ParameterDecorator; export declare function Client(): ParameterDecorator; export declare function MezonClient(): ParameterDecorator; export declare function Args(): ParameterDecorator; export declare function Arg(position?: number): ParameterDecorator; export declare function Attachments(position?: number): ParameterDecorator; export declare function Mentions(position?: number): ParameterDecorator; export declare function ComponentPayload(): ParameterDecorator; export declare function ComponentParams(paramName?: string): ParameterDecorator; export declare function ComponentParam(positionOrName?: number | string): ParameterDecorator; export declare function MessageContent(): ParameterDecorator; export declare function Channel(key?: K): ParameterDecorator; export declare function Clan(): ParameterDecorator; export declare function User(key?: K): ParameterDecorator; export declare function Message(): ParameterDecorator; export declare function ComponentTarget(): ParameterDecorator; /** * Injects an auto-generated helper tuple similar to Necord's `@Context()`. * Resolves to `[ManagedMessage, DMHelper, ChannelHelper]`, enabling convenience helpers. * * **Cách 1: Lấy toàn bộ tuple (backward compatible)** * ```ts * @Command('ping') * async onPing(@AutoContext() [message]: Nezon.AutoContext) { * await message.reply(Nezon.SmartMessage.text('pong')); * } * ``` * * **Cách 2: Lấy phần tử cụ thể bằng key** * ```ts * @Command('dm') * async onDM( * @AutoContext('message') message: Nezon.AutoContextType.Message, * @AutoContext('dm') dm: Nezon.AutoContextType.DM, * ) { * await dm.send(userId, SmartMessage.text('Hello!')); * } * ``` * * Available keys: * - `'message'` - Returns `ManagedMessage` (type: `Nezon.AutoContextType.Message`) * - `'dm'` - Returns `DMHelper` (type: `Nezon.AutoContextType.DM`) * - `'channel'` - Returns `ChannelHelper` (type: `Nezon.AutoContextType.Channel`) * * Combine với `Nezon.SmartMessage` để dựng payload gửi tin nhắn một cách an toàn. */ export declare function AutoContext(key?: 'message' | 'dm' | 'channel'): ParameterDecorator; /** * Injects the event payload from @On or @Once handlers. * The payload type depends on the event being listened to. * * @example * ```ts * @On(Events.TokenSend) * async onTokenSend(@EventPayload() payload: Nezon.TokenSendPayload) { * console.log('Token sent:', payload); * } * ``` * * @example * ```ts * @On(Events.AddClanUser) * async onAddClanUser(@EventPayload() payload: Nezon.AddClanUserPayload) { * console.log('User added:', payload.user_id); * } * ``` */ export declare function EventPayload(): ParameterDecorator; export declare function NezonUtils(): ParameterDecorator; export declare function FormData(field?: string): ParameterDecorator;