/// <reference types="react" />
import { XBaseControl } from "../Controls/XBaseControl";
import { IFormDataAccessor } from "../Utilities/IFormDataAccessor";
import { BorderStyle } from "../FormDesignConstants";
import { ValidationIssue } from "../../Common/IDesignValidationProvider";
import { DefaultOnOff } from "../Utilities/DefaultOnOff";
import { FormContext } from "../Utilities/FormContext";
import { IDataDefinition } from "../../Common/Data/Definitions/IDataDefinition";
export declare abstract class XBaseContainer extends XBaseControl implements IFormDataAccessor {
    overrideFormBorderSettings: DefaultOnOff;
    showContainerBorder?: boolean;
    containerBorderType?: string;
    containerBorderRadius?: number;
    containerBorderWidth?: number;
    containerBorderStyle?: BorderStyle;
    containerBorderColor?: string;
    containerBackgroundColor?: string;
    abstract remove(control: XBaseControl): void;
    abstract find(id: string): XBaseControl | null;
    abstract setOrder(id: string, order: number): void;
    abstract add(control: XBaseControl, index?: number): void;
    abstract getControls(): XBaseControl[];
    getDesignValidationIssues(): ValidationIssue[];
    getRuntimeValidationIssues(): ValidationIssue[];
    getAddedData(): IDataDefinition | IDataDefinition[] | undefined;
    renderEmptyControlDiv(colGap?: number, message?: string): JSX.Element;
    renderBorderConfigUI(): JSX.Element | null;
    hasOwnBorder(): boolean | undefined;
    hasBorder(): boolean | undefined;
    borderColor(): string | undefined;
    borderStyle(): BorderStyle | undefined;
    borderWidth(): number | undefined;
    borderRadius(): number | undefined;
    backgroundColor(): string | undefined | null;
    setFormContext(value: FormContext | undefined): void;
}
