import type { UmbDocumentItemModel } from './types.js';
import { UmbControllerBase } from '../../../../libs/class-api/index.js';
import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
import type { UmbEntityFlag } from '../../../core/entity-flag/index.js';
import type { DocumentVariantStateModel } from '../../../core/backend-api/index.js';
import { type Observable } from '../../../../libs/observable-api/index.js';
import type { UmbItemDataResolver } from '../../../core/entity-item/index.js';
type UmbDocumentItemDataResolverModel = Omit<UmbDocumentItemModel, 'parent' | 'hasChildren'>;
/**
 * A controller for resolving data for a document item
 * @exports
 * @class UmbDocumentItemDataResolver
 * @augments {UmbControllerBase}
 */
export declare class UmbDocumentItemDataResolver<DocumentItemModel extends UmbDocumentItemDataResolverModel> extends UmbControllerBase implements UmbItemDataResolver {
    #private;
    readonly entityType: Observable<"document" | undefined>;
    readonly unique: Observable<string | undefined>;
    readonly icon: Observable<string | undefined>;
    readonly typeUnique: Observable<string | undefined>;
    readonly isTrashed: Observable<boolean | undefined>;
    readonly hasCollection: Observable<boolean>;
    readonly name: Observable<string | undefined>;
    readonly state: Observable<DocumentVariantStateModel | null | undefined>;
    readonly isDraft: Observable<boolean | undefined>;
    readonly createDate: Observable<Date | undefined>;
    readonly updateDate: Observable<Date | undefined>;
    readonly flags: Observable<UmbEntityFlag[]>;
    constructor(host: UmbControllerHost);
    /**
     * Get the display culture or fallback culture
     * @returns {string | null | undefined} The display culture or fallback culture
     * @memberof UmbDocumentItemDataResolver
     */
    getCulture(): string | null | undefined;
    /**
     * Get the current item
     * @returns {DocumentItemModel | undefined} The current item
     * @memberof UmbDocumentItemDataResolver
     */
    getData(): DocumentItemModel | undefined;
    /**
     * Set the current item
     * @param {DocumentItemModel | undefined} data The current item
     * @memberof UmbDocumentItemDataResolver
     */
    setData(data: DocumentItemModel | undefined): void;
    /**
     * Get the entity type of the item
     * @returns {Promise<string | undefined>} The entity type of the item
     * @memberof UmbDocumentItemDataResolver
     */
    getEntityType(): Promise<string | undefined>;
    /**
     * Get the unique of the item
     * @returns {Promise<string | undefined>} The unique of the item
     * @memberof UmbDocumentItemDataResolver
     */
    getUnique(): Promise<string | undefined>;
    /**
     * Get the name of the item
     * @returns {Promise<string>} The name of the item
     * @memberof UmbDocumentItemDataResolver
     */
    getName(): Promise<string>;
    /**
     * Get the icon of the item
     * @returns {Promise<string | undefined>} The icon of the item
     * @memberof UmbDocumentItemDataResolver
     */
    getIcon(): Promise<string | undefined>;
    /**
     * Get the state of the item
     * @returns {Promise<string | undefined>} The state of the item
     * @memberof UmbDocumentItemDataResolver
     */
    getState(): Promise<DocumentVariantStateModel | null | undefined>;
    /**
     * Get the isDraft of the item
     * @returns {Promise<boolean>} The isDraft of the item
     * @memberof UmbDocumentItemDataResolver
     */
    getIsDraft(): Promise<boolean>;
    /**
     * Get the isTrashed of the item
     * @returns {Promise<boolean | undefined>} The isTrashed of the item
     * @memberof UmbDocumentItemDataResolver
     */
    getIsTrashed(): Promise<boolean>;
    /**
     * Get the create date of the item
     * @returns {Promise<Date>} The create date of the item
     * @memberof UmbDocumentItemDataResolver
     */
    getCreateDate(): Promise<Date>;
    /**
     * Get the update date of the item
     * @returns {Promise<Date>} The update date of the item
     * @memberof UmbDocumentItemDataResolver
     */
    getUpdateDate(): Promise<Date>;
    /**
     * Test if the item has a collection
     * @returns {boolean} Boolean of whether the item has a collection.
     * @memberof UmbDocumentItemDataResolver
     */
    getHasCollection(): boolean;
}
export {};
