import { Observable } from 'rxjs';
import { UnifiedInjector } from '../../lazy-loading/unified-injector';
import { Page, PageMeta } from '../model/page.model';
import { PageMetaConfig } from '../page/config/page-meta.config';
import { PageMetaResolver } from '../page/page-meta.resolver';
import { CmsService } from './cms.service';
import * as i0 from "@angular/core";
/**
 * Service that collects the page meta data by using injected page resolvers.
 */
export declare class PageMetaService {
    protected cms: CmsService;
    protected unifiedInjector: UnifiedInjector;
    protected pageMetaConfig: PageMetaConfig;
    protected platformId: string;
    constructor(cms: CmsService, unifiedInjector: UnifiedInjector, pageMetaConfig: PageMetaConfig, platformId: string);
    protected resolvers$: Observable<PageMetaResolver[]>;
    protected meta$: Observable<PageMeta | null>;
    /**
     * Returns the observed page meta data for the current page.
     *
     * The data is resolved by various PageResolvers, which are configurable.
     */
    getMeta(): Observable<PageMeta | null>;
    /**
     * If a `PageResolver` has implemented a resolver interface, the resolved data
     * is merged into the `PageMeta` object.
     * @param metaResolver
     */
    protected resolve(metaResolver: PageMetaResolver): Observable<PageMeta>;
    /**
     * Returns an object with resolvers. The object properties represent the `PageMeta` property, i.e.:
     *
     * ```
     * {
     *   title: 'resolveTitle',
     *   robots: 'resolveRobots'
     * }
     * ```
     *
     * This list of resolvers is filtered for CSR vs SSR processing since not all resolvers are
     * relevant during browsing.
     */
    protected getResolverMethods(): {
        [property: string]: string;
    };
    /**
     * Return the resolver with the best match, based on a score
     * generated by the resolver.
     *
     * Resolvers match by default on `PageType` and `page.template`.
     */
    protected getMetaResolver(page: Page): Observable<PageMetaResolver | undefined>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PageMetaService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PageMetaService>;
}
