import { LineType } from '../ConnectionLine';
import { FontStyleType } from '../FontStyleType';
import { FontWeightType } from '../FontWeightType';
import { TopicShapeType } from '../model/INodeModel';
import Topic from '../Topic';
import Theme, { TopicType } from './Theme';
export type TopicStyleType = {
    borderColor: string | string[];
    backgroundColor: string | string[];
    connectionColor: string | string[];
    connectionStyle: LineType;
    fontFamily: string;
    fontSize: number;
    fontStyle: FontStyleType;
    fontWeight: FontWeightType;
    fontColor: string;
    msgKey: string;
    shapeType: TopicShapeType;
    outerBackgroundColor: string;
    outerBorderColor: string;
};
type StyleType = string | string[] | number | undefined | LineType;
declare abstract class DefaultTheme implements Theme {
    private _style;
    constructor(style: Map<TopicType, TopicStyleType>);
    abstract getCanvasCssStyle(): string;
    protected resolve(key: keyof TopicStyleType, topic: Topic, resolveDefault?: boolean): StyleType;
    protected getStyles(topic: Topic): TopicStyleType;
    getBackgroundColor(topic: Topic): string;
    getShapeType(topic: Topic): TopicShapeType;
    getConnectionType(topic: Topic): LineType;
    getFontFamily(topic: Topic): string;
    getFontSize(topic: Topic): number;
    getFontStyle(topic: Topic): FontStyleType;
    getFontWeight(topic: Topic): FontWeightType;
    getFontColor(topic: Topic): string;
    getBorderColor(topic: Topic): string;
    getOuterBorderColor(topic: Topic): string;
    getOuterBackgroundColor(topic: Topic, onFocus: boolean): string;
    getInnerPadding(topic: Topic): number;
    getText(topic: Topic): string;
    getConnectionColor(topic: Topic): string;
}
export default DefaultTheme;
