import { Processor } from '../Processor';
import { EdgeRendererContract, CompilerContract } from '../Contracts';
/**
 * Renders a given template with it's shared state
 */
export declare class EdgeRenderer implements EdgeRendererContract {
    private compiler;
    private asyncCompiler;
    private globals;
    private processor;
    private locals;
    constructor(compiler: CompilerContract, asyncCompiler: CompilerContract, globals: any, processor: Processor);
    /**
     * Share local variables with the template. They will overwrite the
     * globals
     */
    share(data: any): this;
    /**
     * Render the template
     */
    render(templatePath: string, state?: any): Promise<string>;
    /**
     * Render the template
     */
    renderSync(templatePath: string, state?: any): string;
    /**
     * Render the template from a raw string
     */
    renderRaw(contents: string, state?: any, templatePath?: string): Promise<string>;
    /**
     * Render the template from a raw string
     */
    renderRawSync(contents: string, state?: any, templatePath?: string): string;
}
