import { type RestOrArray } from '../common';
import { type APISectionComponent } from '../types';
import { type Button } from '.';
import { BaseComponentBuilder } from './Base';
import type { TextDisplay } from './TextDisplay';
import type { Thumbnail } from './Thumbnail';
export declare class Section<Ac extends Button | Thumbnail = Button | Thumbnail> extends BaseComponentBuilder<APISectionComponent> {
    components: TextDisplay[];
    accessory?: Ac;
    constructor({ components, accessory, ...data }?: Partial<APISectionComponent>);
    /**
     * Adds components to this section.
     * @param components The components to add
     * @example section.addComponents(new TextDisplay().content('Hello'));
     */
    addComponents(...components: RestOrArray<TextDisplay>): this;
    /**
     * Sets the components for this section.
     * @param components The components to set
     * @example section.setComponents(new TextDisplay().content('Hello'));
     */
    setComponents(...components: RestOrArray<TextDisplay>): this;
    setAccessory(accessory: Ac): this;
    /**
     * Converts this section to JSON.
     * @returns The JSON representation of this section
     */
    toJSON(): APISectionComponent;
}
