/// <reference types="react" />
import { FormControl } from "../Controls/FormControl";
import { IFormDataAccessor } from "../Utilities/IFormDataAccessor";
import { BorderStyle } from "../Utilities/FormDesignConstants";
import { ValidationIssue } from "@appglue/common/dist/Common/IDesignValidationProvider";
import { DefaultOnOff } from "../Utilities/DefaultOnOff";
import { FormContext } from "../Utilities/FormContext";
import { IDataDefinition } from "@appglue/common/dist/Common/Data/Definitions/IDataDefinition";
export declare abstract class XBaseContainer extends FormControl implements IFormDataAccessor {
    overrideFormBorderSettings: DefaultOnOff;
    showContainerBorder?: boolean;
    containerBorderType?: string;
    containerBorderRadius?: number;
    containerBorderWidth?: number;
    containerBorderStyle?: BorderStyle;
    containerBorderColor?: string;
    containerBackgroundColor?: string;
    abstract remove(control: FormControl): void;
    abstract find(id: string): FormControl | null;
    abstract setOrder(id: string, order: number): void;
    abstract add(control: FormControl, index?: number): void;
    abstract getControls(): FormControl[];
    getStorageData(): object;
    setStorageData(data: object): void;
    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;
}
