import { nothing, PropertyValueMap } from 'lit';
import { FileOrderType, FileType } from '../types/files.types';
import { WeavySubComponent } from '../classes/weavy-sub-component';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
declare global {
    interface HTMLElementTagNameMap {
        "wy-file-grid": WyFileGrid;
    }
}
/**
 * Grid view renderer for files (card view).
 *
 * **Used sub components:**
 *
 * - [`<wy-file-menu>`](./wy-file-menu.ts)
 * - [`<wy-icon>`](./ui/wy-icon.ts)
 * - [`<wy-button>`](./ui/wy-button.ts)
 *
 * @csspart wy-grid - Card grid layout
 * @csspart wy-card - Card root container
 * @csspart wy-trashed - Modifier for trashed cards
 * @csspart wy-card-hover - Hoverable card modifier
 * @csspart wy-highlight - Highlighted card modifier
 * @csspart wy-card-actions - Container for per-card actions
 * @csspart wy-card-image - Thumbnail image area
 * @csspart wy-card-image-top - Modifier for image top area
 * @csspart wy-card-icon - Icon area for non-image files
 * @csspart wy-card-title - Card title area
 * @csspart wy-card-text - Text in the card
 * @csspart wy-card-button-icon - Title action / badge
 * @csspart wy-badge - Badge used for comment counts
 *
 * @fires {FileOpenEventType} file-open - Emitted when a file should be opened in preview.
 * @fires {OrderEventType<FileOrderType>} order - Emitted when the user changes sort order.
 * @fires {FileEditNameEventType} edit-name - Emitted when rename mode is activated.
 * @fires {FileRenameEventType} rename - Emitted when a file is renamed.
 * @fires {FileTrashEventType} trash - Emitted when a file is trashed.
 * @fires {FileRestoreEventType} restore - Emitted when a file is restored.
 * @fires {FileDeleteForeverEventType} delete-forever - Emitted when a file is permanently deleted.
 * @fires {FileSubscribeEventType} subscribe - Emitted when subscribe state is toggled.
 */
export declare class WyFileGrid extends WeavySubComponent {
    static styles: import('lit').CSSResult[];
    /** @internal */
    protected exportParts: ShadowPartsController;
    /**
     * Files to display in the grid.
     */
    files?: FileType[];
    /**
     * File id currently being renamed.
     * @internal
     */
    isRenamingId?: number;
    /**
     * File id that should be scrolled into view and highlighted.
     * @internal
     */
    highlightId?: number;
    /**
     * Scroll target for a highlighted file card.
     * @internal
     */
    private highlightRef;
    constructor();
    /**
     * Emit a `file-open` event requesting preview for the given file.
     *
     * @param fileId - Identifier of the file to open.
     * @param tab - Optional preview tab to activate.
     * @returns Whether the event was not canceled.
     */
    dispatchFileOpen(fileId: number, tab?: "comments" | "versions"): boolean;
    /**
     * Emit an `order` event with the selected sort order.
     *
     * @param order - Order to apply.
     * @returns Whether the event was not canceled.
     */
    dispatchOrder(order: FileOrderType): boolean;
    /**
     * Emit an `edit-name` event to enter rename mode for the given file.
     *
     * @param file - File that should be renamed.
     * @returns Whether the event was not canceled.
     */
    dispatchEditName(file: FileType): boolean;
    /**
     * Emit a `rename` event containing the updated file name.
     *
     * @param file - File being renamed.
     * @param name - New filename.
     * @returns Whether the event was not canceled.
     */
    dispatchRename(file: FileType, name: string): boolean;
    /**
     * Emit a `trash` event to move the file to the recycle bin.
     *
     * @param file - File to trash.
     * @returns Whether the event was not canceled.
     */
    dispatchTrash(file: FileType): boolean;
    /**
     * Emit a `restore` event to recover a trashed file.
     *
     * @param file - File to restore.
     * @returns Whether the event was not canceled.
     */
    dispatchRestore(file: FileType): boolean;
    /**
     * Emit a `delete-forever` event to permanently remove a file.
     *
     * @param file - File to delete.
     * @returns Whether the event was not canceled.
     */
    dispatchDeleteForever(file: FileType): boolean;
    /**
     * Emit a `subscribe` event toggling file subscription.
     *
     * @param file - File to subscribe or unsubscribe.
     * @param subscribe - Desired subscription state.
     * @returns Whether the event was not canceled.
     */
    dispatchSubscribe(file: FileType, subscribe: boolean): boolean;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1> | typeof nothing;
    protected updated(changedProperties: PropertyValueMap<this>): void;
}
//# sourceMappingURL=wy-file-grid.d.ts.map