import { MutationController } from '../controllers/mutation-controller';
import { BlobType, MutateFileProps } from '../types/files.types';
import { WeavySubComponent } from '../classes/weavy-sub-component';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
declare global {
    interface HTMLElementTagNameMap {
        "wy-upload": WyUpload;
    }
}
/**
 * Component for handling native file input and upload as a blob.
 *
 * **Used sub components:**
 *
 * - [`<wy-button>`](./ui/wy-button.ts)
 *
 * @fires {BlobUploadedEventType} blob-uploaded
 *
 * @slot placeholder - Placeholder content.
 * @slot action - Slot for replacing the default button.
 * @csspart wy-upload - The upload component.
 * @csspart wy-upload-placeholder - Slot for placeholder content.
 * @csspart wy-upload-action - Slot for the button of the input.
 * @csspart wy-upload-button - The default upload button with label.
 */
export declare class WyUpload extends WeavySubComponent {
    static styles: import('lit').CSSResult[];
    /**
     * Controller for exporting named shadow parts.
     *
     * @internal
     */
    protected exportParts: ShadowPartsController;
    label?: string;
    /** File types to allow in the native file picker. */
    accept?: string;
    /**
     * Mutation controller handling blob uploads.
     *
     * @internal
     */
    protected uploadBlobMutation: MutationController<BlobType, Error, MutateFileProps, void>;
    /**
     * Reference to the hidden file input element.
     *
     * @internal
     */
    private fileInputRef;
    /**
     * Opens the hidden file input dialog.
     *
     * @internal
     */
    private openFileInput;
    /**
     * Uploads the first selected file and resets the input.
     *
     * @internal
     */
    private handleBlobChange;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
//# sourceMappingURL=wy-upload.d.ts.map