import type React from 'react'; import type { FileChangeDetail } from './types.js'; /** * @csspart base */ export interface FileUploadOwnProps { /** * Unique identifier for the element. * @example 'example-id' */ id?: string; /** * Visible label text. * @example 'Example label' */ label?: string; /** * Selection mode (single or multiple). Allowed values: `inline`, `overlay`. * @example 'inline' */ mode?: 'inline' | 'overlay'; /** * Visual style variant. Allowed values: `outline`, `filled`, `subtle`. * @example 'outline' */ variant?: 'outline' | 'filled' | 'subtle'; /** * Corner radius style. Allowed values: `sharp`, `rounded`, `pill`. * @example 'sharp' */ shape?: 'sharp' | 'rounded' | 'pill'; /** * Component size. Allowed values: `xs`, `sm`, `md`, `lg`, `xl`. * @example 'xs' */ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; /** * Disables the component, preventing interaction. * @defaultValue false * @example true */ disabled?: boolean; /** * Whether multiple file selection is allowed. * @defaultValue false * @example true */ multiple?: boolean; /** * Comma-separated list of accepted MIME types or extensions (e.g. "image/*,.pdf"). * @example 'image/*,.pdf' */ accept?: string; /** * Maximum file size in bytes. * @example 1 */ maxSize?: number; /** * Heading text displayed in the drop zone. * @example 'example' */ heading?: string; /** * Label text for the browse button. * @example 'example' */ browseText?: string; /** * Helper text displayed below the component. * @example 'example' */ hint?: string; /** * Camera capture mode for mobile: 'user' (front) or 'environment' (back). Allowed values: `user`, `environment`. * @example 'user' */ capture?: 'user' | 'environment'; /** * Whether to show file previews after selection. * @defaultValue false * @example true */ preview?: boolean; /** * Fires when the committed component value or state changes. Detail: `FileChangeDetail`. * @example (event) => console.log(event.detail.files) */ onChange?: (event: CustomEvent) => void; /** CSS class applied to the Custom Element host. * @example 'my-component' */ className?: string; /** Inline styles applied to the Custom Element host. * @example { marginTop: 8 } */ style?: React.CSSProperties; } /** * Props for ``: the component's own API plus every standard DOM * attribute and native React event handler, forwarded verbatim to the * `` host — `id`, `data-*`, `aria-*`, `title`, `tabIndex`, * `slot`, `onMouseEnter`, and the rest. Own props always win over a * same-named DOM attribute. */ export type FileUploadProps = FileUploadOwnProps & Omit, keyof FileUploadOwnProps | 'children' | 'dangerouslySetInnerHTML'>; export declare const FileUpload: React.ForwardRefExoticComponent, "children" | "dangerouslySetInnerHTML" | keyof FileUploadOwnProps> & React.RefAttributes>;