import { Variable } from '../manager';
import { StructureNode } from '../structure';
export interface NodePerformance {
    id: string;
    name: string;
    version?: string;
    parseTime?: number;
    initialPropsTime?: number;
    buildTime?: number;
}
export interface VariablePerformance extends NodePerformance {
}
export interface RenderPerformance {
    appId?: string | number;
    templateId?: string;
    start?: number;
    end?: number;
    time?: number;
    routerTime?: number;
    getDSLTime?: number;
    parseTime?: number;
    variableTime?: number;
    conditionTime?: number;
    structureTime?: number;
    componentLoadTime?: number;
    buildTime?: number;
    renderTime?: number;
    mainRenderTime?: number;
    nodePerformance?: Record<string, NodePerformance>;
    variablePerformance?: Record<string, VariablePerformance>;
    [k: string]: any;
}
export type RecordPerformanceKey = keyof RenderPerformance;
export type PerformanceLogger = (key: keyof Pick<RenderPerformance, RecordPerformanceKey>, value?: string | StructureNode | Variable) => (msg?: string) => void;
