///
import { ClientConn, ValueState, FunctionDesc, PropDesc, PropGroupDesc, ValueSubscriber } from '@ticlo/core/editor';
import { MultiSelectComponent, MultiSelectLoader } from './MultiSelectComponent';
import { DragState } from 'rc-dock';
import { CheckboxChangeEvent } from 'antd/lib/checkbox';
declare class PropertyLoader extends MultiSelectLoader {
name: string;
bProperties: string[];
constructor(key: string, parent: PropertyEditor);
init(): void;
cache: ValueState;
subBlock: boolean;
valueListener: ValueSubscriber;
displayListener: ValueSubscriber;
destroy(): void;
}
interface Props {
conn: ClientConn;
paths: string[];
name: string;
funcDesc: FunctionDesc;
propDesc: PropDesc;
isMore?: boolean;
group?: string;
baseName?: string;
}
interface State {
unlocked: boolean;
showSubBlock: boolean;
showMenu: boolean;
}
interface PropertyState {
count: number;
value?: any;
valueSame: boolean;
bindingPath?: string;
bindingSame: boolean;
subBlock: boolean;
display: boolean;
displaySame: boolean;
}
export declare class PropertyEditor extends MultiSelectComponent {
constructor(props: Readonly);
createLoader(path: string): PropertyLoader;
subBlockPaths: string[];
buildSubBlockPaths(props: Props): void;
UNSAFE_componentWillReceiveProps(nextProps: Props): void;
unlock: (e: any) => void;
expandSubBlock: (e: any) => void;
onChange: (value: any) => void;
onDragStart: (e: DragState) => void;
onDragOver: (e: DragState) => void;
onDrop: (e: DragState) => void;
onAddMoreGroupChild: (desc: PropDesc | PropGroupDesc) => void;
mergePropertyState(): PropertyState;
getMenu: () => JSX.Element;
closeMenu(): void;
onMenuVisibleChange: (flag: boolean) => void;
onBindChange: (str: string) => void;
onUnbindClick: (e: any) => void;
onAddSubBlock: (id: string, desc?: FunctionDesc, data?: any) => void;
onShowHide: (e: CheckboxChangeEvent) => void;
onClear: () => void;
onInsertIndex: () => void;
onDeleteIndex: () => void;
onRemoveMore: () => void;
renderImpl(): JSX.Element;
}
export {};