import * as i0 from '@angular/core';
import { Provider } from '@angular/core';
import { ResolveFn } from '@angular/router';

/**
 * @param apiEndpoint - required
 * @param forceCreation - True to create a new element without checking whether one already exists.
 */
interface AngularMetaConfig {
    apiEndpoint: string;
    forceCreation?: boolean;
}
interface LinkTag {
    href?: string;
    rel?: string;
    type?: string;
    title?: string;
    media?: string;
}
interface MetaTag {
    charset?: string;
    content?: string;
    httpEquiv?: string;
    id?: string;
    itemprop?: string;
    name?: string;
    property?: string;
    scheme?: string;
    url?: string;
}
type DataTag = LinkTag | MetaTag;
interface AngularMetaData {
    title: string;
    meta: Array<DataTag>;
    schema: any;
}
declare function provideAngularMeta(config: AngularMetaConfig): Provider[];

declare const angularMetaResolver: ResolveFn<boolean>;

declare class AngularMetaCtrl {
    private config;
    private httpClient;
    private meta;
    private title;
    private document;
    private router;
    private activatedRoute;
    getMetas(data: any): Promise<AngularMetaData>;
    setMetaData(data: AngularMetaData): Promise<boolean>;
    initFromCtrl(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AngularMetaCtrl, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AngularMetaCtrl>;
}

export { AngularMetaCtrl, angularMetaResolver, provideAngularMeta };
