/*!
 * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */
import { FieldComponentProps } from "../FieldComponentProps.js";
export declare const fileUploadTypes: readonly ["single", "multiple"];
export declare const fileUploadVariants: readonly ["button", "dragAndDrop", "dragAndDropWithIcon"];
export type FileUploaderProps = {
    /**
     * an array of file types the user is able to upload. @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept#unique_file_type_specifiers for examples
     */
    acceptedFileTypes?: string[];
    /**
     * The label for the `input` element.
     */
    label: string;
    /**
     * Function that is called when the list of ifles to upload is changed
     */
    onChange: (files: File[]) => void;
    /**
     * Either `single` or `multiple`. If `multiple`, multiple files can be uploaded
     */
    type?: (typeof fileUploadTypes)[number];
    /**
     * Either `button`, `dragAndDrop` or `dragAndDropWithIcon`. Will determine how component appears visually
     */
    variant: (typeof fileUploadVariants)[number];
} & Pick<FieldComponentProps, "errorMessage" | "hint" | "HintLinkComponent" | "id" | "isDisabled" | "isFullWidth" | "isOptional">;
declare const MemoizedFileUploader: import("react").MemoExoticComponent<({ acceptedFileTypes, errorMessage, id, isDisabled, isFullWidth, isOptional, hint, HintLinkComponent, label, onChange, type, variant, }: FileUploaderProps) => import("@emotion/react/jsx-runtime").JSX.Element>;
export { MemoizedFileUploader as FileUpload, MemoizedFileUploader as FileUploader, };
//# sourceMappingURL=FileUploader.d.ts.map