import { MessageEntity, User } from 'typegram';
export interface FmtString {
    text: string;
    entities?: MessageEntity[];
    parse_mode?: undefined;
}
export declare class FmtString implements FmtString {
    text: string;
    constructor(text: string, entities?: MessageEntity[]);
    static normalise(content: string | FmtString): FmtString;
}
export declare namespace Types {
    type Containers = 'bold' | 'italic' | 'spoiler' | 'strikethrough' | 'underline';
    type NonContainers = 'code' | 'pre';
    type Text = Containers | NonContainers;
}
declare type TemplateParts = string | TemplateStringsArray | string[];
export declare function _fmt(kind: Types.Containers | 'very-plain'): (parts: TemplateParts, ...items: (string | FmtString)[]) => FmtString;
export declare function _fmt(kind: Types.NonContainers): (parts: TemplateParts, ...items: string[]) => FmtString;
export declare function _fmt(kind: 'pre', opts: {
    language: string;
}): (parts: TemplateParts, ...items: string[]) => FmtString;
export declare const linkOrMention: (content: string | FmtString, data: {
    type: 'text_link';
    url: string;
} | {
    type: 'text_mention';
    user: User;
}) => FmtString;
export {};
//# sourceMappingURL=formatting.d.ts.map