/// <reference types="react" />
import { XBaseContainer } from "./XBaseContainer";
import { FormMode, BorderStyle, TabOrientation } from "../FormDesignConstants";
import { XBaseControl } from "../Controls/XBaseControl";
import { ValidationIssue } from "../../Common/IDesignValidationProvider";
import { FormContext } from "../Utilities/FormContext";
import { XBaseStackContainer } from "./XBaseStackContainer";
import { IDataDefinition } from "../../Common/Data/Definitions/IDataDefinition";
export declare class XTabContainerTabHeader {
    icon: JSX.Element | null;
    title: string;
    tab?: XTabContainerTab;
    getStorageData(): object;
    setStorageData(data: object): void;
}
export declare class XTabContainerTabContent extends XBaseStackContainer {
    tab?: XTabContainerTab;
    contentBorderType?: string;
    contentBorderRadius?: number;
    contentBorderWidth?: number;
    contentBorderStyle?: BorderStyle;
    contentBorderColor?: string;
    contentBackgroundColor?: string;
    setFormContext(value: FormContext | undefined): void;
    getFormMode(): FormMode | string;
    getStorageData(): object;
    getInnerControlSpacing(): number | undefined;
    getContainer(): XTabContainer | undefined;
    hasOwnBorder(): boolean | undefined;
    hasBorder(): boolean | undefined;
    borderColor(): string | undefined;
    borderStyle(): BorderStyle | undefined;
    borderWidth(): number | undefined;
    borderRadius(): number | undefined;
    backgroundColor(): string | undefined | null;
    getInnerMargin(): number | undefined;
    render(): JSX.Element;
    renderEditUI(): JSX.Element | null;
}
export declare class XTabContainerTab extends XBaseControl {
    header?: XTabContainerTabHeader;
    content?: XTabContainerTabContent;
    container?: XTabContainer;
    getAddedData(): IDataDefinition | IDataDefinition[] | undefined;
    getStorageData(): object;
    setStorageData(data: object): void;
    setContainer(container: XTabContainer): void;
    setFormContext(value: FormContext | undefined): void;
    setContent(content: XTabContainerTabContent): void;
    setHeader(header: XTabContainerTabHeader): void;
    find(id: string): XBaseControl | null;
    add(control: XBaseControl, index?: number): void;
    getContainer(): XTabContainer | undefined;
    remove(control: XBaseControl): void;
    getControls(): XBaseControl[];
    getDesignValidationIssues(): ValidationIssue[];
    getRuntimeValidationIssues(): ValidationIssue[];
    renderEditUI(): JSX.Element | null;
}
export declare class XTabContainer extends XBaseContainer {
    orientation: TabOrientation;
    tabs: XTabContainerTab[];
    selectedValue: string;
    interControlSpacing?: number;
    innerMargin?: number;
    innerMarginTabHeader: number;
    minWidthPxTabHeader: number;
    fullWidth: boolean;
    centered: boolean;
    defaultTabContentHeight: number | null;
    defaultTabContentWidth: number | null;
    defaultTabContentBackground: string;
    defaultTabContentInnerMargin: number;
    defaultTabHeaderBackground: string;
    defaultShowContentBorder: boolean;
    defaultContentBorderColor?: string;
    defaultContentBorderRadius?: number;
    defaultContentBorderWidth?: number;
    defaultContentBorderStyle?: BorderStyle;
    setOrder(id: string, order: number): void;
    setFormContext(value: FormContext | undefined): void;
    getControls(): XBaseControl[];
    getCurrentTab(): XTabContainerTab | undefined;
    addTab(tab: XTabContainerTab): void;
    add(control: XBaseControl, index?: number): void;
    remove(control: XBaseControl): void;
    find(id: string): XBaseControl | null;
    getInnerMargin(): number | undefined;
    getStorageData(): object;
    setStorageData(data: object): void;
    handleChange(_event: any, newValue: string): void;
    render(): JSX.Element;
    renderEditUI(): JSX.Element;
}
