import { MessageType } from './constants';
export declare class TMNSerializer {
    static serialize(tmn: TMN): string;
    static deserialize(o: any): TMN;
}
export declare class TMN {
    Tmn: string;
    constructor(tmn: string);
    static NewCommandTMN(target: string, method: string): TMN;
    static NewEventTMN(namespace: string, resourceType: string, resourceSubtype?: string): TMN;
    private static checkTokens;
    toString(): string;
    getType(): MessageType;
    private tokenize;
    getNamespace(): string | undefined;
    getResourceType(): string | undefined;
    getResourceSubtype(): string | undefined;
    getTarget(): string | undefined;
    getMethod(): string | undefined;
}
export declare class TRNSerializer {
    static serialize(trn: TRN): string;
    static deserialize(o: any): TRN;
}
export declare class TRN {
    Trn: string;
    constructor(tmn: string);
    static NewTRN(parent: string, namespace: string, resourceType: string, id: string): TRN;
    private static checkTokens;
    toString(): string;
    private tokenize;
    getParent(): string;
    getNamespace(): string;
    getResourceType(): string;
    getResourceId(): string;
    getResourceName(): string;
}
export interface MessageConfig {
    ParentID?: string;
    GroupId?: string;
}
export declare class Message {
    Tmn: TMN;
    Timestamp: Date;
    MessageID: string;
    ParentID: string;
    GroupId: string;
    ServiceTrn: TRN;
    constructor(tmn: TMN, ServiceTrn: TRN, config?: MessageConfig | undefined);
}
