import { type CSSProperties } from 'react'; import { type SFieldSize, type SFieldAddonAlign, type SFieldStatus } from '../SField'; import { type SIconName } from '../SIcon'; import { type SColor } from '../../lib/color'; import { type Rule } from '../../lib/form'; import { type STooltipProps } from '../STooltip'; export type SFilePickerValue = File[] | File | null; export type SFilePickerRejectReason = 'max-file-size' | 'max-total-size' | 'max-files'; export interface SFilePickerProps { value?: SFilePickerValue; /** 파일 변경 (sdUpdate) */ onValueChange?: (value: SFilePickerValue) => void; /** 제한 초과 거부 (sdReject) */ onReject?: (detail: { files: File[]; reason: SFilePickerRejectReason; }) => void; placeholder?: string; disabled?: boolean; /** 포커스 상태 여부 */ focused?: boolean; /** 호버 상태 여부 */ hovered?: boolean; /** 인라인 표시 — SField 테두리 박스만 사라지고 label/rules/hint 는 그대로 동작 */ inline?: boolean; multiple?: boolean; /** multiple 파일 목록을 필드 아래 칩 대신, caret(▼) 클릭 시 열리는 리스트박스 카드로 표시 (바깥 클릭 시 닫힘) */ useMultipleListBox?: boolean; accept?: string; maxFileSize?: number | string; maxTotalSize?: number | string; maxFiles?: number | string; name?: string; rules?: Rule[]; status?: SFieldStatus; size?: SFieldSize; label?: string; labelWidth?: number | string; icon?: SIconName; iconColor?: SColor; labelTooltip?: string; labelTooltipProps?: Partial; addonLabel?: string; addonAlign?: SFieldAddonAlign; hint?: string; error?: boolean; errorMessage?: string; width?: number | string; className?: string; style?: CSSProperties; } /** SFilePicker — sd-file-picker 포팅. 단일/다중 파일 + 크기·개수 검증 + 칩 목록. */ export declare function SFilePicker({ value, onValueChange, onReject, placeholder, disabled, focused, hovered, inline, multiple, useMultipleListBox, accept, maxFileSize, maxTotalSize, maxFiles, name, rules, status, size, label, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, width, className, style, }: SFilePickerProps): import("react").JSX.Element;