import { LitElement, nothing } from 'lit';
import { FileType } from '../types/files.types';
import { ComponentFeaturePolicy } from '../contexts/features-context';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
import { AppType } from '../types/app.types';
declare global {
    interface HTMLElementTagNameMap {
        "wy-file-menu": WyFileMenu;
    }
}
/**
 * Dropdown menu for file actions (download, open, rename, subscribe, trash etc).
 *
 * **Used sub components:**
 *
 * - [`<wy-dropdown>`](./ui/wy-dropdown.ts)
 * - [`<wy-dropdown-item>`](./ui/wy-dropdown.ts)
 * - [`<wy-dropdown-divider>`](./ui/wy-dropdown.ts)
 * - [`<wy-icon>`](./ui/wy-icon.ts)
 *
 * @slot - Additional file menu items
 *
 * @fires {FileEditNameEventType} edit-name - Emitted when rename mode should be activated.
 * @fires {FileSubscribeEventType} subscribe - Emitted when subscribe/unsubscribe is requested.
 * @fires {FileTrashEventType} trash - Emitted when a file should be moved to trash.
 * @fires {FileRestoreEventType} restore - Emitted when a trashed file should be restored.
 * @fires {FileDeleteForeverEventType} delete-forever - Emitted when a file should be permanently deleted.
 */
export declare class WyFileMenu extends LitElement {
    /** @internal */
    protected exportParts: ShadowPartsController;
    /**
     * @internal
     * Consumed feature policy controlling which actions are available.
     */
    protected componentFeatures?: ComponentFeaturePolicy | undefined;
    /**
     * The app data.
     * @internal
     */
    app: AppType | undefined;
    /**
     * File to operate on when rendering menu actions.
     */
    file: FileType;
    /**
     * Render the dropdown using compact button styling.
     */
    small: boolean;
    /**
     * Tracks which action events have listeners attached.
     */
    hasEventListener: {
        [key: string]: boolean;
    };
    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    /**
     * Open download URL for the current file.
     * @internal
     */
    private triggerDownload;
    /**
     * Open external provider URL for the current file.
     * @internal
     */
    private triggerExternal;
    /**
     * Open application-specific URL for the current file.
     * @internal
     */
    private triggerApplication;
    /**
     * Emit an `edit-name` event for the current file.
     * @internal
     */
    private dispatchEditName;
    /**
     * Emit a `subscribe` event toggling subscription state.
     *
     * @internal
     * @param subscribe - Desired subscription setting.
     */
    private dispatchSubscribe;
    /**
     * Emit a `trash` event for the current file.
     * @internal
     */
    private dispatchTrash;
    /**
     * Emit a `restore` event for the current file.
     * @internal
     */
    private dispatchRestore;
    /**
     * Emit a `delete-forever` event for the current file.
     * @internal
     */
    private dispatchDeleteForever;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1> | typeof nothing;
}
//# sourceMappingURL=wy-file-menu.d.ts.map