/*!
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */
/// <reference types="node" />
import { APIActionRowComponent, APIAttachment, APIEmbed, APIMessageActionRowComponent, MessageFlags } from "discord-api-types/v10";
import { ActionRowBuilder, ActionRowData, Attachment, AttachmentBuilder, AttachmentPayload, BufferResolvable, ButtonBuilder, InteractionReplyOptions, InteractionUpdateOptions, JSONEncodable, MessageActionRowComponentBuilder, MessageActionRowComponentData, MessageCreateOptions, MessageMentionOptions, RestOrArray } from "discord.js";
import { Stream } from "stream";
type file = BufferResolvable | Stream | JSONEncodable<APIAttachment> | Attachment | AttachmentBuilder | AttachmentPayload;
type component = ActionRowBuilder<MessageActionRowComponentBuilder> | JSONEncodable<APIActionRowComponent<APIMessageActionRowComponent>> | ActionRowData<MessageActionRowComponentData | MessageActionRowComponentBuilder> | APIActionRowComponent<APIMessageActionRowComponent>;
export declare class RexInteractionReplyBuilder implements InteractionReplyOptions {
    fetchReply?: boolean | undefined;
    tts?: boolean | undefined;
    content?: string | undefined;
    nonce?: string | undefined;
    embeds?: (JSONEncodable<APIEmbed> | APIEmbed)[];
    allowedMentions?: MessageMentionOptions | undefined;
    components?: component[];
    files?: file[];
    private _flags;
    flags?: Extract<MessageFlags, MessageFlags.Ephemeral | MessageFlags.SuppressEmbeds>;
    setEphemeral(value: boolean): this;
    setFetchReply<T extends boolean>(value: T): this & {
        fetchReply: T;
    };
    setTTS(value: boolean): this;
    setContent(value: string): this;
    setNonce(value: string): this;
    addEmbeds(...embeds: (JSONEncodable<APIEmbed> | APIEmbed)[] | (JSONEncodable<APIEmbed> | APIEmbed)[][]): this;
    setEmbeds(...embeds: (JSONEncodable<APIEmbed> | APIEmbed)[] | (JSONEncodable<APIEmbed> | APIEmbed)[][]): this;
    setAllowedMentions(value: MessageMentionOptions): this;
    addComponents(...components: component[] | component[][]): this;
    setComponents(...components: component[] | component[][]): this;
    /**
     * add an action row with the components you give
     * @param components the button and/or select components
     * @returns this
     */
    addActionRow(...components: RestOrArray<ButtonBuilder | MessageActionRowComponentBuilder>): this;
    addFiles(...files: file[] | file[][]): this;
    setFiles(...files: file[] | file[][]): this;
    setSurpressEmbeds(value: boolean): this;
    toJSON(): InteractionReplyOptions;
    /**
     * makes it possible to use the RexInteractionReply to update an interaction response
     * @returns {InteractionUpdateOptions} update options (no further chaining not possible)
     */
    toUpdateOptions(): InteractionUpdateOptions;
    toMessage(): MessageCreateOptions;
}
/**
 * backwards compatibility for deprecation period
 * @extends RexInteractionReplyBuilder
 * @deprecated
 */
export declare class RexInteractionReply extends RexInteractionReplyBuilder {
}
export {};
