import type { Context, EggCore } from '@eggjs/core';
import { ViewManager, type ViewManagerConfig, type RenderOptions } from './view_manager.js';
declare const RENDER: unique symbol;
declare const RENDER_STRING: unique symbol;
declare const GET_VIEW_ENGINE: unique symbol;
declare const SET_LOCALS: unique symbol;
/**
 * View instance for each request.
 *
 * It will find the view engine, and render it.
 * The view engine should be registered in {@link ViewManager}.
 */
export declare class ContextView {
    protected ctx: Context;
    protected app: EggCore;
    protected viewManager: ViewManager;
    protected config: ViewManagerConfig;
    constructor(ctx: Context);
    /**
     * Render a file by view engine
     * @param {String} name - the file path based on root
     * @param {Object} [locals] - data used by template
     * @param {Object} [options] - view options, you can use `options.viewEngine` to specify view engine
     * @return {Promise<String>} result - return a promise with a render result
     */
    render(name: string, locals?: Record<string, any>, options?: RenderOptions): Promise<string>;
    /**
     * Render a template string by view engine
     * @param {String} tpl - template string
     * @param {Object} [locals] - data used by template
     * @param {Object} [options] - view options, you can use `options.viewEngine` to specify view engine
     * @return {Promise<String>} result - return a promise with a render result
     */
    renderString(tpl: string, locals?: Record<string, any>, options?: RenderOptions): Promise<string>;
    [RENDER](name: string, locals?: Record<string, any>, options?: RenderOptions): Promise<string>;
    [RENDER_STRING](tpl: string, locals?: Record<string, any>, options?: RenderOptions): Promise<string>;
    [GET_VIEW_ENGINE](name: string): import("./view_manager.js").ViewEngine;
    /**
     * set locals for view, inject `locals.ctx`, `locals.request`, `locals.helper`
     * @private
     */
    [SET_LOCALS](locals?: Record<string, any>): {
        ctx: Context;
        request: import("@eggjs/core").Request;
        helper: import("egg").Helper;
    } & Record<string, any>;
}
export {};
