import { LitElement, nothing } from 'lit';
import { FileActionType, FileStatusType, FileType } from '../types/files.types';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
declare global {
    interface HTMLElementTagNameMap {
        "wy-file-item": WyFileItem;
    }
}
/**
 * File list item showing file icon, name and actions.
 *
 * **Used sub components:**
 *
 * - [`<wy-item>`](./ui/wy-item.ts)
 * - [`<wy-icon>`](./ui/wy-icon.ts)
 * - [`<wy-file-menu>`](./wy-file-menu.ts)
 *
 * @slot title - Custom title content for the item.
 * @slot actions - Actions slot (e.g. buttons / menus).
 *
 * @csspart wy-input - Input used when renaming a file.
 *
 * @fires {FileEditNameEventType} edit-name - Emitted when rename mode is requested.
 * @fires {FileRenameEventType} rename - Emitted when a file rename is confirmed.
 * @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 WyFileItem extends LitElement {
    static styles: import('lit').CSSResult[];
    /** @internal */
    protected exportParts: ShadowPartsController;
    /**
     * File data displayed in the list item.
     */
    file?: FileType;
    /**
     * Current status metadata for the file item.
     */
    status: FileStatusType;
    /**
     * Enable interactive hover/focus styling.
     */
    interactive: boolean;
    /**
     * Render the item with rounded corners.
     */
    rounded: boolean;
    /**
     * Optional action type used for contextual handling.
     */
    actionType?: FileActionType;
    /**
     * Track whether the filename is currently being edited.
     *
     * @internal
     */
    isRenaming: boolean;
    /**
     * Emit an `edit-name` event requesting rename mode for the provided file.
     *
     * @param file - File that should enter rename mode.
     * @returns Whether the event was not canceled.
     */
    dispatchEditName(file: FileType): boolean;
    /**
     * Emit a `rename` event with a new filename.
     *
     * @param file - File being renamed.
     * @param name - New filename to apply.
     * @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 slated for trashing.
     * @returns Whether the event was not canceled.
     */
    dispatchTrash(file: FileType): boolean;
    /**
     * Emit a `restore` event to recover the provided file.
     *
     * @param file - File to restore from trash.
     * @returns Whether the event was not canceled.
     */
    dispatchRestore(file: FileType): boolean;
    /**
     * Emit a `delete-forever` event to permanently remove the file.
     *
     * @param file - File targeted for permanent deletion.
     * @returns Whether the event was not canceled.
     */
    dispatchDeleteForever(file: FileType): boolean;
    /**
     * Emit a `subscribe` event toggling subscription for the file.
     *
     * @param file - File whose subscription changes.
     * @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;
}
//# sourceMappingURL=wy-file-item.d.ts.map