import { Application, Content, ResourceUpdateInfo, Tag, TagManager, TagMatchOption } from '@foxpage/foxpage-types';
import { ManagerBaseImpl } from '../common';
/**
 * tag manager
 *
 * @export
 * @class TagManagerImpl
 */
export declare class TagManagerImpl extends ManagerBaseImpl<Content> implements TagManager {
    /**
     * fileId & pageIds map
     * key: fileId, value: pageIds
     *
     * @private
     */
    private pageIdMap;
    constructor(app: Application);
    /**
     * add tag
     *
     * @param {ContentTag} content
     */
    addTag(content: Content): void;
    /**
     * remove tags by pageIds
     *
     * @param {string[]} pageIds
     */
    removeTags(pageIds?: string[]): void;
    /**
     * get tag, contains content info
     *
     * @param {Tag[]} tags
     * @param {TagMatchOption} opt
     * @return {*}  {(Promise<Content | null>)}
     */
    matchTag(tags: Tag[], opt: TagMatchOption): Promise<Content | null>;
    protected onPull(data: ResourceUpdateInfo): Promise<void>;
    protected createInstance(data: Content): Promise<Content>;
    protected onFetch(_list: string[]): Promise<undefined>;
    private freshWithTags;
    destroy(): void;
}
