/**
 * Copyright (c) OpenLens Maintainers. All rights reserved.
 * Licensed under MIT License. See LICENSE in root directory for more information.
 */
import "./file-picker.scss";
import React from "react";
import type { StrictReactNode } from "@openlens/utilities";
export interface FileUploadProps {
    uploadDir: string;
    rename?: boolean;
    handler(path: string[]): void;
}
export interface MemoryUseProps {
    handler(file: File[]): void;
}
export declare enum OverLimitStyle {
    REJECT = "reject",
    CAP = "cap"
}
export declare enum OverSizeLimitStyle {
    REJECT = "reject",
    FILTER = "filter"
}
export declare enum OverTotalSizeLimitStyle {
    REJECT = "reject",
    FILTER_LAST = "filter-last",
    FILTER_LARGEST = "filter-largest"
}
export interface BaseProps {
    accept?: string;
    label: StrictReactNode;
    multiple?: boolean;
    limit?: [number, number];
    onOverLimit?: OverLimitStyle;
    maxSize?: number;
    onOverSizeLimit?: OverSizeLimitStyle;
    maxTotalSize?: number;
    onOverTotalSizeLimit?: OverTotalSizeLimitStyle;
}
export type FilePickerProps = BaseProps & (MemoryUseProps | FileUploadProps);
export declare const FilePicker: (props: FilePickerProps) => React.JSX.Element;
