import type { AST } from "../../types";
import { Interpolation } from "./interpolation";
import type { VCSSIDSelector, VCSSClassSelector, VCSSTypeSelector, VCSSAtRule, VCSSDeclarationProperty } from "../ast";
export { Interpolation };
export declare class Template {
    static interpolationTemplate: Template;
    elements: (Interpolation | string)[];
    readonly string: string | null;
    private _text;
    private _regexp;
    constructor(elements: (Interpolation | string | null | undefined)[]);
    static of(value: string): Template;
    static ofSelector(node: VCSSIDSelector | VCSSClassSelector | VCSSTypeSelector): Template;
    static ofParams(node: VCSSAtRule): Template;
    static ofDeclValue(text: string, lang: string): Template;
    static ofDeclValue(node: VCSSDeclarationProperty): Template;
    static ofNode(node: AST.ESLintBlockStatement | AST.ESLintExpression | AST.ESLintPrivateIdentifier | AST.VLiteral | AST.VFilterSequenceExpression | AST.VForExpression | AST.VOnExpression | AST.VSlotScopeExpression): Template | null;
    match(o: Template): boolean;
    matchString(s: string): boolean;
    endsWith(s: string): boolean;
    concat(o: string | Template): Template;
    hasString(s: string): boolean;
    divide(s: string | RegExp): Template[];
    toLowerCase(): Template;
    private get text();
    private get regexp();
    private buildRegexp;
    private buildText;
}
