import { BuilderContext, BuilderOutput } from '@angular-devkit/architect';
import { json, Path, workspaces, logging } from '@angular-devkit/core';
import { Options } from "../../server";
import { TargetPathBuilder, TranslationSource, TranslationTarget, TranslationTargetRegistry, PersistenceStrategy, SerializationStrategy } from "../../../server";
declare class AngularI18n {
    private _host;
    private _workspaceRoot;
    private _projectName;
    private _targetPathBuilder;
    private _translationContextFactory;
    constructor(_host: workspaces.WorkspaceHost, _workspaceRoot: Path, _projectName: string, _targetPathBuilder: TargetPathBuilder, _translationContextFactory: () => {
        source: TranslationSource;
        targetRegistry: TranslationTargetRegistry;
    });
    sourceLocale(): Promise<{
        code: string;
        baseHref?: string;
    }>;
    locales(): Promise<{
        [locale: string]: {
            translation: string[];
            baseHref?: string;
        };
    }>;
    update(): Promise<void>;
    projectRelativePath(target: TranslationTarget): Path;
    private _readProjectI18n;
    private _readProject;
    private _i18nLocale;
    private _normalizeI18nLocale;
}
interface AngularJsonI18n {
    sourceLocale?: string | {
        code: string;
        baseHref: string;
    };
    locales?: {
        [locale: string]: AngularJsonI18nLocale;
    };
}
type AngularJsonI18nLocale = string | string[] | {
    translation: string | string[];
    baseHref?: string;
};
declare class AngularJsonPersistenceStrategy extends PersistenceStrategy {
    private readonly _i18n;
    private readonly _logger;
    private readonly _serializationStrategy;
    constructor(_i18n: AngularI18n, _logger: logging.Logger, _serializationStrategy: SerializationStrategy);
    create(target: TranslationTarget): Promise<void>;
    update(target: TranslationTarget): Promise<void>;
    private _write;
    private _updateProjectI18n;
}
declare const _default: import("@angular-devkit/architect/src/internal").Builder<Options & json.JsonObject>;
declare function t9n(options: Options, context: BuilderContext): Promise<BuilderOutput>;
export * from '../../server';
export { Options as t9nOptions } from "../../server";
export { _default as default, AngularI18n, AngularJsonI18n, AngularJsonI18nLocale, AngularJsonPersistenceStrategy, t9n };
