/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../core/base/base-component';
import { IFilePickerChangeEventData } from './file-picker-constants';
export interface IFilePickerComponent extends IBaseComponent {
    accept: string | null | undefined;
    maxSize: number | null | undefined;
    capture: string | null | undefined;
    multiple: boolean;
    disabled: boolean;
    compact: boolean;
    borderless: boolean;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-file-picker': IFilePickerComponent;
    }
    interface HTMLElementEventMap {
        'forge-file-picker-change': CustomEvent<IFilePickerChangeEventData>;
    }
}
/**
 * @tag forge-file-picker
 *
 * @summary
 * The file-picker component allows for a user to upload files of their own to the system. The component provides a slot for a
 * button, as well as drag-and-drop functionality to launch the system file chooser dialog. There are visual queues to let the
 * user know when files they are dragging can be dropped, as well as events that are relayed to the developer to handle files
 * that are legal and/or illegal based on the parameters set on the component.
 *
 * The expectation of this component is that it will be used as a familiar element on the page that will let users upload files,
 * while providing that visual and functional consistency.
 *
 * @property {string | null} accept - Gets/sets the allowed file types.
 * @property {string | null} maxSize - Gets/sets the maximum allowed file size.
 * @property {string | null} capture - Gets/sets the camera to use when capturing video or images.
 * @property {boolean} multiple - Gets/sets whether multiple files are allowed.
 * @property {boolean} disabled - Gets/sets whether the file picker is disabled.
 * @property {boolean} compact - Gets/sets whether the file picker uses the compact variant.
 * @property {boolean} borderless - Gets and sets whether the file picker is borderless.
 *
 * @attribute {string | null} accept - Gets/sets the allowed file types.
 * @attribute {string | null} maxSize - Gets/sets the maximum allowed file size.
 * @attribute {string | null} capture - Gets/sets the camera to use when capturing video or images.
 * @attribute {boolean} multiple - Gets/sets whether multiple files are allowed.
 * @attribute {boolean} disabled - Gets/sets whether the file picker is disabled.
 * @attribute {boolean} compact - Gets/sets whether the file picker uses the compact variant.
 * @attribute {boolean} borderless - Gets and sets whether the file picker is borderless.
 *
 * @cssproperty --forge-file-picker-background - Controls the background color.
 * @cssproperty --forge-file-picker-width - Controls the width.
 * @cssproperty --forge-file-picker-height - Controls the height.
 * @cssproperty --forge-file-picker-max-width - Controls the maximum width.
 * @cssproperty --forge-file-picker-border-width - Controls the border width.
 * @cssproperty --forge-file-picker-border-style - Controls the border style.
 * @cssproperty --forge-file-picker-border-color - Controls the border color.
 * @cssproperty --forge-file-picker-gap - Controls gap between each element.
 * @cssproperty --forge-file-picker-padding - Controls the padding.
 * @cssproperty --forge-file-picker-padding-block - Controls the top and bottom padding.
 * @cssproperty --forge-file-picker-padding-inline - Controls the left and right padding.
 * @cssproperty --forge-file-picker-disabled-opacity - Controls the opacity value of the file picker when it's disabled.
 * @cssproperty --forge-file-picker-highlight-background - Controls the background color of the file picker when dragging files into the form.
 * @cssproperty --forge-file-picker-highlight-border-color - Controls the border color of the file picker when dragging files into the form.
 *
 * @csspart form - The <form> element at the root.
 * @csspart primary - The container element around the primary slot.
 * @csspart secondary - The container element around the secondary slot.
 * @csspart input - The <input type="file"> element.
 * @csspart helper-text-container - The container around the helper-text slot.
 */
export declare class FilePickerComponent extends BaseComponent implements IFilePickerComponent {
    static get observedAttributes(): string[];
    private _foundation;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /** Gets and sets the allowed file types */
    accept: string | null | undefined;
    /** Gets and sets the maximum allowed file size */
    maxSize: number | null | undefined;
    /** Gets and sets the camera to use when capturing video or images */
    capture: string | null | undefined;
    /** Gets and sets whether multiple files are allowed */
    multiple: boolean;
    /** Gets and sets whether the file picker is disabled */
    disabled: boolean;
    /** Gets and sets whether the file picker is compact */
    compact: boolean;
    /** Gets and sets whether the file picker is borderless */
    borderless: boolean;
}
