import { Controller } from 'tsoa';
import { type Request as ExpressRequest, type Response as ExpressResponse } from 'express';
import { ComponentRunnerService } from '../../component-runner';
import { ManifestService, ComponentFunctionService, ComponentSetService, ContentItemService } from '@squiz/component-lib';
import { RenderInputService, ComponentExecutionInput } from '../../RenderInputService';
import { FunctionReturnTypes } from '../../component-runner/FunctionReturnTypes';
import { ComponentPreviewService } from '../../PreviewComponentService';
export declare class RenderController extends Controller {
    protected componentSetService: ComponentSetService;
    protected manifestService: ManifestService;
    protected componentFunctionService: ComponentFunctionService;
    protected componentRunnerService: ComponentRunnerService;
    protected renderInputService: RenderInputService;
    protected contentItemService: ContentItemService | null;
    protected componentPreviewService: ComponentPreviewService;
    constructor(componentSetService: ComponentSetService, manifestService: ManifestService, componentFunctionService: ComponentFunctionService, componentRunnerService: ComponentRunnerService, renderInputService: RenderInputService, contentItemService: ContentItemService | null, componentPreviewService: ComponentPreviewService);
    getDefaultFunctionRendering(expressRequest: ExpressRequest, namespace: string, componentName: string, version: string, componentSet?: string, previewKey?: string, contentItemId?: string): Promise<void>;
    getGivenFunctionRendering(expressRequest: ExpressRequest, namespace: string, componentName: string, version: string, functionName: string, componentSet?: string, previewKey?: string, contentItemId?: string): Promise<void>;
    protected handleResponse(input: ComponentExecutionInput, output: FunctionReturnTypes, response: ExpressResponse): void;
    protected doFunctionRender(renderInput: ComponentExecutionInput): Promise<FunctionReturnTypes>;
    private renderAndValidateOutput;
    protected setHeadersOnResponse(renderInput: ComponentExecutionInput, response: ExpressResponse): void;
}
