import { ContainerBuilder } from 'discord.js';
import type { ContainerChild, ContainerInput, DisplayComponent, DisplayInput } from '../types';
/**
 * Converts a container input into a container child builder when needed.
 *
 * @param component Container input.
 * @returns Discord container child.
 */
export declare function toContainerChild(component: ContainerInput): ContainerChild;
/**
 * Converts a display input into a Discord display component.
 *
 * @param component Display input.
 * @returns Discord display component.
 */
export declare function toDisplayComponent(component: DisplayInput): DisplayComponent;
/**
 * Converts a variadic list of display inputs into Discord display components.
 *
 * @param components Display inputs.
 * @returns Discord display components.
 */
export declare function toDisplayComponents(...components: DisplayInput[]): DisplayComponent[];
/**
 * Marks a display component array as rendered and stores attachment metadata.
 *
 * @param components Rendered display components.
 * @param attachments Attachment metadata.
 * @returns Rendered components with metadata.
 */
export declare function createRenderedComponents(components: DisplayComponent[], attachments: readonly unknown[]): import("../types").RenderedComponents;
/**
 * Checks whether a value is a rendered component array.
 *
 * @param value Value to inspect.
 * @returns Whether the value was created by `createRenderedComponents(...)`.
 */
export declare function isRenderedComponents(value: unknown): value is import('../types').RenderedComponents;
/**
 * Gets the attachment metadata attached to a rendered component array.
 *
 * @param components Rendered components.
 * @returns Rendered attachments.
 */
export declare function getRenderedComponentsAttachments(components: import('../types').RenderedComponents): readonly unknown[];
/**
 * Collects file attachments from public container inputs.
 *
 * @param components Container inputs.
 * @returns Collected attachment payloads.
 */
export declare function collectAttachmentsFromContainerInputs(components: readonly ContainerInput[]): readonly unknown[];
/**
 * Attaches metadata to a container builder for later file collection.
 *
 * @param container Container builder.
 * @param attachments Attachments to associate with the container.
 * @returns The same container builder instance for chaining.
 */
export declare function attachContainerAttachments(container: ContainerBuilder, attachments: readonly unknown[]): ContainerBuilder;
/**
 * Collects file attachments from rendered display inputs.
 *
 * @param components Display inputs.
 * @returns Collected attachment payloads.
 */
export declare function collectAttachmentsFromDisplayInputs(components: readonly DisplayInput[]): readonly unknown[];
//# sourceMappingURL=container.d.ts.map