import Konva from 'konva'; import { Subject } from 'rxjs'; import { StyleAdapter } from '../common'; import { Destroyable, WithOptionalPartial } from '../types'; export interface ComponentConfig { style: S; } /** * Intended to be used in component constructors. 'style' property is made optional, style type 'S' type is made Partial */ export type ConfigWithOptionalStyle> = WithOptionalPartial; export interface KonvaComponent, S, T extends Konva.Node> extends Destroyable { get konvaNode(): T; get config(): C; get style(): S; set style(value: Partial); } export declare abstract class BaseKonvaComponent, S, T extends Konva.Node> implements KonvaComponent { protected readonly _destroyed$: Subject; protected readonly _styleAdapter: StyleAdapter; private _config; private _konvaNode?; protected constructor(config: C); protected abstract provideKonvaNode(): T; destroy(): void; get config(): C; get konvaNode(): T; get style(): S; set style(value: Partial); }