/// <reference types="typed-mxgraph" />
/// <reference types="typed-mxgraph" />
/**
 * Copyright 2021 Bonitasoft S.A.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { mxgraph } from '../initializer';
import type { mxCellState, mxRectangle } from 'mxgraph';
import type { OverlayStyle } from '../../registry';
export declare type VerticalAlignType = 'bottom' | 'middle' | 'top';
export declare type HorizontalAlignType = 'left' | 'center' | 'right';
export interface MxGraphCustomOverlayOptions {
    position: MxGraphCustomOverlayPosition;
    style: MxGraphCustomOverlayStyle;
}
export interface MxGraphCustomOverlayPosition {
    horizontalAlign?: HorizontalAlignType;
    verticalAlign?: VerticalAlignType;
}
export declare type MxGraphCustomOverlayStyle = Required<OverlayStyle>;
export declare class MxGraphCustomOverlay extends mxgraph.mxCellOverlay {
    label: string;
    readonly style: MxGraphCustomOverlayStyle;
    constructor(label: string, options: MxGraphCustomOverlayOptions);
    getBounds(state: mxCellState): mxRectangle;
    private computeEdgeBounds;
}
