import { ParsedMessagePart } from './parsed-message-part';
import { INormalizedMessage, ValidationErrors } from '../api/i-normalized-message';
import { IMessageParser } from './i-message-parser';
import { IICUMessage, IICUMessageTranslation } from '../api/i-icu-message';
/**
* Created by martin on 05.05.2017.
* A message text read from a translation file.
* Can contain placeholders, tags, text.
* This class is a representation independent of the concrete format.
*/
export declare class ParsedMessage implements INormalizedMessage {
/**
* Parser that created this message (determines the native format).
*/
private _parser;
/**
* The message where this one stems from as translation.
* Optional, set only for messages created by calling translate.
*/
private sourceMessage;
/**
* The parts of the message.
*/
private _parts;
/**
* messages xml representation.
*/
private _xmlRepresentation;
constructor(parser: IMessageParser, sourceMessage: ParsedMessage);
/**
* Get the parser (for tests only, not part of API)
* @return parser
*/
getParser(): IMessageParser;
/**
* Create a new normalized message as a translation of this one.
* @param normalizedString the translation in normalized form.
* If the message is an ICUMessage (getICUMessage returns a value), use translateICUMessage instead.
* @throws an error if normalized string is not well formed.
* Throws an error too, if this is an ICU message.
*/
translate(normalizedString: string): INormalizedMessage;
/**
* Create a new normalized icu message as a translation of this one.
* @param icuTranslation the translation, this is the translation of the ICU message,
* which is not a string, but a collections of the translations of the different categories.
* The message must be an ICUMessage (getICUMessage returns a value)
* @throws an error if normalized string is not well formed.
* Throws an error too, if this is not an ICU message.
*/
translateICUMessage(icuTranslation: IICUMessageTranslation): INormalizedMessage;
/**
* Create a new normalized message from a native xml string as a translation of this one.
* @param nativeString xml string in the format of the underlying file format.
* Throws an error if native string is not acceptable.
*/
translateNativeString(nativeString: string): INormalizedMessage;
/**
* normalized message as string.
* @param displayFormat optional way to determine the exact syntax.
* Allowed formats are defined as constants NORMALIZATION_FORMAT...
*/
asDisplayString(displayFormat?: string): string;
/**
* Returns the message content as format dependent native string.
* Includes all format specific markup like ..
*/
asNativeString(): string;
/**
* Validate the message.
* @return null, if ok, error object otherwise.
*/
validate(): ValidationErrors | null;
/**
* Validate the message, check for warnings only.
* A warning shows, that the message is acceptable, but misses something.
* E.g. if you remove a placeholder or a special tag from the original message, this generates a warning.
* @return null, if no warning, warnings as error object otherwise.
*/
validateWarnings(): ValidationErrors | null;
/**
* Test wether this message is an ICU message.
* @return true, if it is an ICU message.
*/
isICUMessage(): boolean;
/**
* Test wether this message contains an ICU message reference.
* ICU message references are something like .
* @return true, if there is an ICU message reference in the message.
*/
containsICUMessageRef(): boolean;
/**
* If this message is an ICU message, returns its structure.
* Otherwise this method returns null.
* @return ICUMessage or null.
*/
getICUMessage(): IICUMessage;
/**
* Check for added placeholder.
* @return null or message, if fulfilled.
*/
private checkPlaceholderAdded;
/**
* Check for removed placeholder.
* @return null or message, if fulfilled.
*/
private checkPlaceholderRemoved;
/**
* Check for added ICU Message Refs.
* @return null or message, if fulfilled.
*/
private checkICUMessageRefAdded;
/**
* Check for removed ICU Message Refs.
* @return null or message, if fulfilled.
*/
private checkICUMessageRefRemoved;
/**
* Get all indexes of placeholders used in the message.
*/
private allPlaceholders;
/**
* Return the disp-Attribute of placeholder
* @param index index of placeholder
* @return disp or null
*/
getPlaceholderDisp(index: number): string;
/**
* Get all indexes of ICU message refs used in the message.
*/
private allICUMessageRefs;
/**
* Return the disp-Attribute of icu message ref
* @param index of ref
* @return disp or null
*/
getICUMessageRefDisp(index: number): string;
/**
* Check for added tags.
* @return null or message, if fulfilled.
*/
private checkTagAdded;
/**
* Check for removed tags.
* @return null or message, if fulfilled.
*/
private checkTagRemoved;
/**
* Get all tag names used in the message.
*/
private allTags;
parts(): ParsedMessagePart[];
setXmlRepresentation(xmlRepresentation: Element): void;
addText(text: string): void;
addPlaceholder(index: number, disp: string): void;
addStartTag(tagname: string, idcounter: number): void;
addEndTag(tagname: string): void;
addEmptyTag(tagname: string, idcounter: number): void;
addICUMessageRef(index: number, disp: any): void;
addICUMessage(text: string): void;
/**
* Determine, wether there is an open tag, that is not closed.
* Returns the latest one or null, if there is no open tag.
*/
private calculateOpenTagName;
}
//# sourceMappingURL=parsed-message.d.ts.map