/*!
Copyright © 2024 Open Text Corporation, All Rights Reserved.

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
import { Config, GridChildConfig } from '../../models/control-config';
import { ResponsiveGridDropTargetManager } from '../responsive-grid-drop-target-manager/ocpd-responsive-grid-drop-target-manager';
export declare class ResponsiveFormGrid extends ResponsiveGridDropTargetManager {
    _mouseOverChangedEventHandler: any;
    _responsiveGridAnimationContainer: HTMLDivElement;
    _animationQueue: {
        [key: string]: AnimationQueue;
    };
    _rearrangeTimer: number;
    _previousGridReference: GridChildConfig;
    _initGridReference: any;
    _keyboardGridReference: GridChildConfig;
    logicalGrid: LogicalGridRow[];
    rectsContainer: DOMRect;
    _dropZoneElement: HTMLDivElement;
    _requestAnimationFrameTimer: number;
    static get tagName(): string;
    constructor();
    disconnectedCallback(): void;
    setUpTooltipTracking(): void;
    disposeTooltipTracking(): void;
    mouseOverChanged(event: any): void;
    render(config: Config): void;
    addEventListeners(): void;
    removeEventListeners(): void;
    getColumnOverrideFromParent(): number;
    renderInitialControls(configs: Config[]): void;
    isColumnCountCorrect(): boolean;
    getParentNumberOfColumns(): void;
    createColumn(): LogicalGridColumn[];
    create2DArray(): LogicalGridRow[];
    adjustInitialAnimationPosition(isBeingMoved: boolean, isKeyboard: boolean, gridChildConfig: GridChildConfig, node: any, gridChildConfigPrimary: GridChildConfig): void;
    createHTMLForAbsolutePositionedGrid(isBeingMoved: boolean, isKeyboard: boolean, controlsBeingDragged: Config[]): void;
    setRowMinHeight(iRow: number, value: string): void;
    createAbsolutePositionOfGridNewControl(currentGridReference: GridChildConfig, controlsBeingDragged: Config[], useSynchronous: any): void;
    calculateAdjustmentToMoveExistingControlsWhenAddingANewControl(controlsBeingDragged: Config[]): number;
    animateGridForNewControl(currentGridReference: GridChildConfig, controlsBeingDragged: Config[], useSynchronous: any): void;
    getResizeGridShadow(controlsUnderGridShadow: LogicalGridColumn[], currentGridReference: GridChildConfig): GridChildConfig;
    animateGridComplete(argsArray: any, isHorizontal: boolean, useSynchronous: boolean): void;
    animateGrid(currentGridReference: GridChildConfig, controlBeingDragged: Config[], direction: string, controlsUnderGridShadow: LogicalGridColumn[], adjustment: number, isResize: boolean, isKeyboard: boolean, isBeingMoved: boolean, useSynchronous: boolean): void;
    getLowestControlUnderGridShadow(controlsUnderGridShadow: LogicalGridColumn[]): LogicalGridColumn;
    getLeftestControlUnderGridShadow(controlsUnderGridShadow: LogicalGridColumn[]): LogicalGridColumn;
    getRightestControlUnderGridShadow(controlsUnderGridShadow: LogicalGridColumn[]): LogicalGridColumn;
    getHighestControlUnderGridShadow(controlsUnderGridShadow: LogicalGridColumn[]): LogicalGridColumn;
    hasGridReferencePositionChanged(currentGridReference: GridChildConfig): boolean;
    getInitGridReference(gridReference: any, controls: any): void;
    getColumnRowAdjustment(direction: any, currentGridReference: GridChildConfig, controlsUnderGridShadow: LogicalGridColumn[]): any;
    getDirectionToMove(currentGridReference: GridChildConfig, isResize: boolean): "up" | "left" | "right" | "down";
    createAbsolutePositionOfGrid(currentGridReference: GridChildConfig, controlBeingDragged: Config[], isBeingMoved: boolean, isKeyboard: boolean, isResize: boolean, useSynchronous: any): void;
    isDropZoneFree(currentGridReference: GridChildConfig, controlBeingDragged: Config): boolean;
    createMissingLogicalGridRow(previousRow: LogicalGridRow, rowNr: any): void;
    getAllControlsUnderShadow(currentGridReference: GridChildConfig, controlBeingDragged: any, isBeingMoved?: boolean): LogicalGridColumn[];
    isLeftOfAllControls(currentGridReference: GridChildConfig, controlsUnderGridShadow: LogicalGridColumn[]): boolean;
    isBottomOfAllControls(currentGridReference: GridChildConfig, controlsUnderGridShadow: any): boolean;
    isRightOfAllControls(currentGridReference: GridChildConfig, controlsUnderGridShadow: any): boolean;
    isAnythingInTheWay(isResize: any, controlsUnderGridShadow: any, adjustment: any, controlBeingDragged: any, direction: any): number;
    incrementFreeRowsColumns(freeRowsColumns: number, noControlsInThisRowOrColumn: boolean): number;
    canIMoveControlsDown(currentGridReference: GridChildConfig, controlBeingDragged: Config[], adjustment: number, controlsUnderGridShadow: LogicalGridColumn[], isResize: boolean, isKeyboard: boolean, isBeingMoved: boolean): number;
    addAllControlsBeingDraggedToAnimationQueue(controlBeingDragged: Config[]): void;
    canIMoveControlsUp(currentGridReference: GridChildConfig, controlBeingDragged: Config[], adjustment: number, controlsUnderGridShadow: LogicalGridColumn[], isResize: boolean, isKeyboard: boolean, isBeingMoved: boolean): number;
    canIMoveControlsLeft(currentGridReference: GridChildConfig, controlBeingDragged: Config[], adjustment: number, controlsUnderGridShadow: LogicalGridColumn[], isResize: boolean, isKeyboard: boolean, isBeingMoved: boolean): number;
    canIMoveControlsRight(currentGridReference: GridChildConfig, controlBeingDragged: Config[], adjustment: number, controlsUnderGridShadow: LogicalGridColumn[], isResize: boolean, isKeyboard: boolean, isBeingMoved: boolean): number;
    isSourceControl(iRow: number, iCol: number, controlBeingDragged: Config[], isCopied: boolean): boolean;
    animateLeftPosition(horizontalAdjustment: number, controlsBeingDragged: Config[], currentGridReference: GridChildConfig, isResize: boolean, isKeyboard: boolean): void;
    willControlsUnderShadowFitInSpaceAvailable(controlsUnderGridShadow: LogicalGridColumn[], adjustment: number, controlBeingDragged: Config[], direction: string): LogicalGridColumn[];
    willItFitSpace(gridChild: GridChildConfig, controlBeingDragged: Config[]): boolean;
    setAnimationQueueIfEverythingFits(controlsUnderGridShadow: LogicalGridColumn[], controlsThatFitInSpace: any): boolean;
    animateTopPosition(verticalAdjustment: number, controlsBeingDragged: Config[], currentGridReference: GridChildConfig, isResize: boolean, isKeyboard: boolean): void;
    addAnyMissingRows(rowStart: any): void;
    updateGridStyles(configs: Config[], currentGridReference: GridChildConfig, elementBeingDragged: any, undoTransactionId: any, isKeyboard: any, isResize: any): Promise<void>;
    getNewRowStart(config: any, gridReference: any, isMultipleSelect: any, isKeyboard: any): any;
    getNewColumnStart(config: any, gridReference: any, isMultipleSelect: any, isKeyboard: any): any;
    removeHideStyles(): void;
    updateChildGridStyles(id: any, elementToAnimate: any, config: any, undoTransactionId: any): Promise<void>;
    applyNewGridPositions(controlBeingDragged: Config[], currentGridReference: GridChildConfig, applyNewGridPosition: boolean, updateControlBeingDragged: boolean, undoTransactionId: any, isKeyboard: any, isResize: any): Promise<void>;
    keepControlWithinBoundariesOfParent(gridChild: GridChildConfig): void;
    setControlsWithinBoundariesOfParent(configs: Config[], gridReference: GridChildConfig): void;
    getControlById(controlBeingDragged: Config): Config;
    controlWasDroppedBeforeAnimationWasInitiated(isKeyboard: boolean): boolean;
    clearLogicalGrid(controlBeingDragged: Config[], applyNewGridPositions: boolean, updateControlBeingDragged: boolean, currentGridReference: GridChildConfig, undoTransactionId: any, isResize: any, isKeyboard: any): Promise<void>;
    clearAnimation(): void;
    fillLogicalGrid(config: Config): void;
    getAllControlsOfSameHeight(configs: Config[]): Config[];
    getColumnWidth(gridColumnEnd: any, newMaxColCount: any): any;
    ensureRowExists(row: any, newMaxColCount: any): void;
    ensureRowIsPresentAndCorrect(config: Config, currentRow: number, newMaxColCount: any): void;
    placeSameHeightControls(sameHeightControls: Config[], newMaxColCount: any, currentRow: any, undoTransactionId: any): number;
    isChildColumnCountGreaterThanParentColumnCount(newMaxColCount: any, element: any): boolean;
    rearrangeControls(newMaxColCount: number, undoTransactionId: any): void;
    numberOfColumnsChanged(newMaxColCount: any, oldMaxColCount: any, undoTransactionId: any): void;
    getOriginalColumnCount(): number;
    areControlsPlacedOutsideOfNewColumnBoundary(newColumnCount: number): boolean;
    returnControlsToOriginalLocations(): void;
    numberOfColumnsChangedComplete(newMaxColCount: any, oldMaxColCount: any): Promise<void>;
    fixMinHeightForAllRows(): void;
    removeControl(elementId: any): void;
    sortControls(configs: Config[]): Config[];
    get dropZone(): HTMLDivElement;
    get responsiveGridAnimationContainer(): HTMLDivElement;
    get gridChildControls(): any[];
    get rootContainer(): any;
    getDropPosition(event: any, configs: Config[], type: string): GridChildConfig;
    keyDownDropShadow(event: any): void;
    getEndPositionForMultipleSelect(configs: any, gridConfig: any, type: any): void;
    showDropShadow(gridConfig: GridChildConfig): void;
    findDropTargetRow(elements: Element[]): HTMLDivElement;
    findDropTargetColumn(elements: Element[]): HTMLDivElement;
    propertyChanged(propertyPath: string, oldValue: any, newValue: any, elementId: any, isUndo: boolean, transactionId: string): void;
    getControlMarkup(config: Config): string;
    getCss(themeName: any): string;
}
export declare class LogicalGridRow {
    columns: LogicalGridColumn[];
    height: number;
    top: number;
    bottom: number;
    createRowOnCompletion?: boolean;
}
export declare class LogicalGridColumn {
    width: number;
    left: number;
    type?: string;
    id: string;
    gridColumnStart?: number;
    gridColumnEnd?: number;
    gridRowStart?: number;
    gridRowEnd?: number;
}
export declare class AnimationQueue {
    elementToAnimate?: HTMLElement;
    isHorizontal?: boolean;
    controlBeingDragged?: Config;
    adjustment?: number;
    currentGridReference?: GridChildConfig;
}
