import { nothing } from 'lit';
import { WeavySubComponent } from '../classes/weavy-sub-component';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
declare global {
    interface HTMLElementTagNameMap {
        "wy-cloud-files": WyCloudFiles;
    }
}
/**
 * File picker for cloud services. Depends on Weavy filebrowser server to function.
 *
 * **Used sub components**
 *
 * - [`<wy-overlay>`](./ui/wy-overlay.ts)
 * - [`<wy-progress-circular>`](./ui/wy-progress-circular.ts)
 *
 * @csspart wy-cloud-files-overlay - The overlay modal.
 * @csspart wy-cloud-files-progress - Progress shown when the iframe is loading.
 * @csspart wy-cloud-files-frame - The iframe for the Weavy filebrowser.
 *
 * @fires {ExternalBlobsEventType} external-blobs
 */
export declare class WyCloudFiles extends WeavySubComponent {
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    /**
     * URL to the Weavy filebrowser iframe source.
     *
     * @internal
     */
    protected src?: URL;
    /**
     * Whether the iframe is visible. It's initially hidden until the filebrowser src has loaded.
     *
     * @internal
     */
    protected iframeVisible: boolean;
    /**
     * Whether the picker overlay is shown.
     *
     * @internal
     */
    protected showOverlay: boolean;
    /**
     * Post-message service used to communicate with the filebrowser iframe.
     *
     * @internal
     */
    private weavyPostal?;
    /** Whether the content window is registered for post-message communication.
     *
     * @internal
     */
    private isRegistered;
    /**
     * Reference to the iframe element.
     *
     * @internal
     */
    private iframeElementRef;
    /**
     * Reference to the overlay modal element.
     *
     * @internal
     */
    private overlayRef;
    /**
     * Open the file picker overlay.
     */
    open(): void;
    /**
     * Close the file picker overlay.
     */
    close(): void;
    /**
     * Returns the topmost available window/frame origin used when building the iframe src.
     *
     * @internal
     */
    protected get origin(): string;
    /**
     * Handler invoked when the iframe posts selected files.
     *
     * @internal
     */
    private handleFiles?;
    /**
     * Handler invoked when the iframe requests the file browser to close.
     *
     * @internal
     */
    private handleClose?;
    /**
     * Handler invoked when a Google selection event is posted from the iframe.
     *
     * @internal
     */
    private handleGoogleSelected?;
    /**
     * Trigger `external-blobs` event with any selected blobs.
     *
     * @internal
     * @param {ExternalBlobType[] | null} externalBlobs - The externally selected blobs.
     * @returns {boolean} Whether the event was successful.
     */
    private dispatchExternalBlobs;
    connectedCallback(): void;
    disconnectedCallback(): void;
    updated(): void;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1> | typeof nothing;
}
//# sourceMappingURL=wy-cloud-files.d.ts.map