import { RenderResult } from '@dojo/framework/core/interfaces';
export interface TreeNodeOption {
    id: string;
    parent: string;
    value: string;
    hasChildren: boolean;
}
export interface TreeProperties {
    checkable?: boolean;
    selectable?: boolean;
    checkedIds?: string[];
    expandedIds?: string[];
    initialChecked?: string[];
    initialExpanded?: string[];
    value?: string;
    disabledIds?: string[];
    parentSelection?: boolean;
    onValue?(id: string): void;
    onCheck?(id: string[]): void;
    onExpand?(id: string[]): void;
}
export interface TreeChildren {
    (node: TreeNodeOption): RenderResult;
}
declare const _default: import("@dojo/framework/core/interfaces").OptionalWNodeFactory<{
    properties: TreeProperties & import("@dojo/framework/core/interfaces").WidgetProperties & {
        variant?: "default" | "inherit" | undefined;
    } & import("@dojo/framework/core/middleware/theme").ThemeProperties & import("@dojo/framework/core/interfaces").FocusProperties & import("@dojo/framework/core/middleware/resources").ResourceProperties<TreeNodeOption, undefined>;
    children: TreeChildren;
}>;
export default _default;
interface TreeNodeProperties {
    checkable: boolean;
    checked?: boolean;
    selectable?: boolean;
    disabled?: boolean;
    activeNode?: string;
    value?: string;
    expanded: boolean;
    selected: boolean;
    parentSelection?: boolean;
    node: TreeNodeOption;
    onActive(): void;
    onValue(): void;
    onCheck(checked: boolean): void;
    onExpand(expanded: boolean): void;
}
interface TreeNodeChildren {
    (node: TreeNodeOption): RenderResult;
}
export declare const TreeNode: import("@dojo/framework/core/interfaces").WNodeFactory<{
    properties: TreeNodeProperties & import("@dojo/framework/core/interfaces").WidgetProperties & {
        variant?: "default" | "inherit" | undefined;
    } & import("@dojo/framework/core/middleware/theme").ThemeProperties;
    children: TreeNodeChildren;
}>;
