import { CanvasDispatcherOptions, EndpointData, RenderDataSpecification, RendererMode, RenderSpecification } from './types';
import { CanvasRendererModel } from '../canvas-renderer';
import { PublicModelInterface } from '../../../core/types';
import { IKosIdentifiable } from '../../../core/core/types';
import { KosRequest, KosResponse } from '../../../core/core/services/browser-router';
import { IKosDataModel, KosCreationContext } from '../../../core/core/kosModel';
import { KosContext } from '../../../core';

export declare const MODEL_TYPE = "canvas-dispatcher-model";
export type CanvasDispatcherModel = PublicModelInterface<CanvasDispatcherModelImpl>;
export declare class CanvasDispatcherModelImpl implements IKosDataModel, IKosIdentifiable {
    id: string;
    private logger;
    private _content;
    private _patterns;
    private _endpointRenderers;
    pattern?: RendererMode;
    data?: RenderDataSpecification<any> | null;
    constructor(modelId: string, _options: CanvasDispatcherOptions, context: KosCreationContext);
    addNamedEndpoint(name: string, data: EndpointData): CanvasRendererModel;
    addContent(name: string, contentUrl: string): void;
    addPattern(name: string, data: RenderSpecification<any>): void;
    handlePatternsPost(req: KosRequest<"/api/ui/canvas/patterns">, res: KosResponse): Promise<void>;
    handlePatternApplication(req: KosRequest<"/api/ui/canvas/pattern/:endpoint/:pattern">, res: KosResponse): Promise<void>;
    handleColorApplication(req: KosRequest<"/api/ui/canvas/color/:endpoint/:color">, res: KosResponse): Promise<void>;
    handleEndpointCreation(req: KosRequest<"/api/ui/canvas/endpoint">, res: KosResponse): Promise<void>;
    load(context?: KosContext): Promise<void>;
}
//# sourceMappingURL=canvas-dispatcher-model.d.ts.map