import { TemplateContext } from 'typescript-template-language-service-decorator';
import { TextDocument } from 'vscode-languageserver-textdocument';
import * as ts from 'typescript/lib/tsserverlibrary';
/**
 * Handles mapping between template contents to virtual documents.
 */
export interface VirtualDocumentProvider {
    createVirtualDocument(context: TemplateContext): TextDocument;
    toVirtualDocPosition(position: ts.LineAndCharacter): ts.LineAndCharacter;
    fromVirtualDocPosition(position: ts.LineAndCharacter): ts.LineAndCharacter;
    toVirtualDocOffset(offset: number, context: TemplateContext): number;
    fromVirtualDocOffset(offset: number, context: TemplateContext): number;
    getVirtualDocumentWrapper(context: TemplateContext): string;
}
/**
 * Standard virtual document provider for styled content.
 *
 * Wraps content in a top level `:root { }` rule to make css language service happy
 * since styled allows properties to be top level elements.
 */
export declare class StyledVirtualDocumentFactory implements VirtualDocumentProvider {
    private static readonly wrapperPreRoot;
    private static readonly wrapperPreKeyframes;
    createVirtualDocument(context: TemplateContext): TextDocument;
    toVirtualDocPosition(position: ts.LineAndCharacter): ts.LineAndCharacter;
    fromVirtualDocPosition(position: ts.LineAndCharacter): ts.LineAndCharacter;
    toVirtualDocOffset(offset: number, context: TemplateContext): number;
    fromVirtualDocOffset(offset: number, context: TemplateContext): number;
    getVirtualDocumentWrapper(context: TemplateContext): string;
}
