import { nothing, PropertyValueMap } from 'lit';
import { FileType } from '../types/files.types';
import { WeavySubAppComponent } from '../classes/weavy-sub-app-component';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
declare global {
    interface HTMLElementTagNameMap {
        "wy-file-versions": WyFileVersions;
    }
}
/**
 * File versions list for a file — displays available versions and actions (download, revert, remove).
 *
 * **Used sub components:**
 *
 * - [`<wy-item-list>`](./ui/wy-item.ts)
 * - [`<wy-item>`](./ui/wy-item.ts)
 * - [`<wy-dropdown>`](./ui/wy-dropdown.ts)
 * - [`<wy-dropdown-divider>`](./ui/wy-dropdown.ts)
 * - [`<wy-dropdown-item>`](./ui/wy-dropdown.ts)
 * - [`<wy-icon>`](./ui/wy-icon.ts)
 * - [`<wy-progress-circular>`](./ui/wy-progress-circular.ts)
 * - [`<wy-empty>`](./wy-empty.ts)
 *
 * @csspart wy-versions - Wrapper for the versions list.
 *
 * @fires {FileVersionSelectEventType} file-version-select - Emitted when a file version is selected.
 */
export declare class WyFileVersions extends WeavySubAppComponent {
    /** @internal */
    protected exportParts: ShadowPartsController;
    /**
     * Source file whose version timeline should be displayed.
     */
    file: FileType;
    /**
     * Currently selected version. Falls back to the latest when unset.
     */
    activeVersion?: FileType;
    /**
     * Query controller fetching the file versions list.
     * @internal
     */
    private fileVersionsQuery;
    /**
     * Mutation used when reverting to an older version.
     * @internal
     */
    private fileVersionRestoreMutation?;
    /**
     * Mutation used when removing a version.
     * @internal
     */
    private fileVersionDeleteMutation?;
    /**
     * Selects the provided version and emits `file-version-select`.
     *
     * @param versionFile - Version to select.
     */
    selectVersion(versionFile: FileType): void;
    /**
     * Emit a `file-version-select` event with the chosen version.
     *
     * @internal
     * @param versionFile - Version to announce.
     * @returns Whether the event was not canceled.
     */
    dispatchFileVersionSelect(versionFile: FileType): boolean;
    /**
     * Revert the file to the supplied version.
     *
     * @internal
     * @param versionFile - Version to restore.
     */
    handleRevert(versionFile: FileType): void;
    /**
     * Remove the supplied version and adjust the active selection if needed.
     *
     * @internal
     * @param versionFile - Version to delete.
     */
    handleRemove(versionFile: FileType): void;
    /**
     * Download the provided version via the browser.
     *
     * @internal
     * @param file - Version file to download.
     */
    triggerDownload(file: FileType): void;
    willUpdate(changedProperties: PropertyValueMap<this>): Promise<void>;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1> | typeof nothing;
}
//# sourceMappingURL=wy-file-versions.d.ts.map