import { LitElement, TemplateResult, CSSResult } from 'lit'; declare global { interface HTMLElementTagNameMap { 'forge-ai-file-picker': AiFilePickerComponent; } interface HTMLElementEventMap { 'forge-ai-file-picker-change': CustomEvent; 'forge-ai-file-picker-error': CustomEvent; } } /** * Event data interface for the file picker change event. */ export interface ForgeAiFilePickerChangeEventData { /** The selected file */ file: File; /** Timestamp when the file was selected */ timestamp: number; } /** * Event data interface for the file picker error event. */ export interface ForgeAiFilePickerErrorEventData { /** The error type */ type: 'size' | 'duplicate'; /** The error message */ message: string; /** The file that caused the error */ filename: string; } export type AiFilePickerVariant = 'button' | 'icon-button'; /** * @summary An AI file picker component with button and icon-button variants. * * @description * A simple file picker component that allows users to select and upload files. * Provides both button and icon-button variants for different UI contexts. * * @slot - The default slot for button content when no file is selected. * @slot icon - The icon slot for icon-button variant. * * @event {CustomEvent} forge-ai-file-picker-change - Fired when a file is selected via click or drag & drop. * The event detail contains the selected file and timestamp. */ export declare class AiFilePickerComponent extends LitElement { #private; static styles: CSSResult; /** * The variant of the file picker button. */ variant: AiFilePickerVariant; /** * Whether the file picker is disabled. */ disabled: boolean; /** * Accepted file types (comma-separated MIME types or extensions). */ accept: string; /** * Whether to allow multiple file selection. */ multiple: boolean; /** * Maximum file size in bytes. Default is 10MB. */ maxSize: number; /** * Array of currently selected file names for duplicate checking. */ selectedFiles: string[]; private _isDragOver; private _fileInput; connectedCallback(): void; disconnectedCallback(): void; private _handleButtonClick; private _handleFileChange; private _onDragOver; private _onDragLeave; private _onDrop; render(): TemplateResult; }