import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import { AlContentBundle } from '@al/core';
import * as i0 from "@angular/core";
/**
 * External resources may be either bundled (a collection of many small resources, each with its own type and metadata) or raw, standalone files.
 *
 * Bundled resources are referenced using this format:
 *
 *  categoryId:bundleId#itemId.
 *
 * Raw resources are referenced using this format:
 *
 *  categoryId:filePath.fileExtension
 */
export declare class AlExternalContentManagerService {
    sanitizer: DomSanitizer;
    protected localResourcePath?: string;
    protected bundles: {
        [bundleKey: string]: Promise<AlContentBundle>;
    };
    protected rawResourceIdMatcher: RegExp;
    protected bundledResourceIdMatcher: RegExp;
    protected typeDictionary: {
        [type: string]: {
            contentType: string;
            fileExtension: string;
        };
    };
    constructor(sanitizer: DomSanitizer);
    /**
     * This allows external content to be tested without modifying ui-static-content or gestalt API
     */
    useLocalResources(basePath: string): void;
    getTextResource(resourceId: string, defaultText?: string): Promise<string>;
    getHtmlResourceAsText(resourceId: string, defaultHtml?: string, transformer?: {
        (text: string): string | PromiseLike<string>;
    }): Promise<string>;
    getHtmlResource(resourceId: string, defaultHtml?: string, transformer?: {
        (text: string): string | PromiseLike<string>;
    }): Promise<SafeHtml>;
    getJsonResource<StructureType = any>(resourceId: string, defaultValue?: StructureType): Promise<StructureType>;
    getResource<Type = string>(resourceId: string, assertedType?: string): Promise<Type>;
    isValidResource(resourceId: string): boolean;
    protected getRawResource<Type = string>(resourceId: string, assertedType?: string): Promise<Type>;
    protected getBundledResource<Type = string>(resourceId: string, assertedType?: string): Promise<Type>;
    protected getContentBundle(categoryId: string, bundleId: string): Promise<AlContentBundle>;
    protected retrieveResource(resourcePath: string): Promise<any>;
    protected isRawResource(resourceId: string): boolean;
    protected isBundledResource(resourceId: string): boolean;
    protected parseRawResourceIdentifier(resourceId: string): {
        categoryId: string;
        filePath: string;
        fileExtension: string;
    };
    protected parseBundledResourceIdentifier(resourceId: string): {
        categoryId: string;
        bundleId: string;
        itemId: string;
    };
    static ɵfac: i0.ɵɵFactoryDef<AlExternalContentManagerService, never>;
    static ɵprov: i0.ɵɵInjectableDef<AlExternalContentManagerService>;
}
