import type { IOverlayBehavior } from '../../Abstracts/IOverlayBehavior';
import type { IDialogRef, IDialogOptions } from '../DialogService';
import { type IDialogStackBehaviorConfig } from './IDialogStackBehaviorConfig';
/**
 * Behavior that manages a stack of dialogs with decreasing sizes.
 * Each dialog in the stack is offset from the previous one, creating
 * a cascading visual effect.
 *
 * @public
 */
export declare class DialogStackBehavior implements IOverlayBehavior<IDialogRef, IDialogOptions> {
    private readonly _config;
    private readonly _stack;
    /**
     * Constructs a new instance of the `DialogStackBehavior` class.
     *
     * @public
     * @param config - Optional configuration for stack behavior.
     */
    constructor(config?: Partial<IDialogStackBehaviorConfig>);
    /**
     * Returns the current number of dialogs in the stack.
     *
     * @public
     * @readonly
     */
    get stackSize(): number;
    /**
     * Returns the current stack configuration.
     *
     * @public
     * @readonly
     */
    get config(): Readonly<IDialogStackBehaviorConfig>;
    /**
     * Returns an array of all dialog references in stack order (oldest first).
     *
     * @public
     * @readonly
     */
    get stack(): ReadonlyArray<IDialogRef>;
    /**
     * Configures the dialog options before opening.
     * Validates stack depth limits.
     *
     * @public
     * @param options - The dialog options to configure.
     */
    configure(_options: Partial<IDialogOptions>): void;
    /**
     * Attaches a dialog to the stack and applies stack styling.
     *
     * @public
     * @param ref - The dialog reference to attach.
     */
    attach(ref: IDialogRef): void;
    /**
     * Detaches a dialog from the stack.
     *
     * @public
     * @param ref - The dialog reference to detach.
     */
    detach(ref: IDialogRef): void;
    /**
     * Disposes of all resources and clears the stack.
     *
     * @public
     */
    dispose(): void;
    /**
     * Calculates the width for a dialog at a specific stack level.
     *
     * @public
     * @param stackLevel - The zero-based index of the dialog in the stack.
     * @param baseWidthOverride - Optional override for the base width.
     * @returns The calculated CSS width string.
     */
    calculateWidth(stackLevel: number, baseWidthOverride?: string): string;
    /**
     * Calculates the height for a dialog at a specific stack level.
     *
     * @public
     * @param stackLevel - The zero-based index of the dialog in the stack.
     * @param baseHeightOverride - Optional override for the base height.
     * @returns The calculated CSS height string.
     */
    calculateHeight(stackLevel: number, baseHeightOverride?: string): string;
    /**
     * Calculates the z-index for a dialog at a specific stack level.
     *
     * @private
     * @param stackLevel - The zero-based index of the dialog in the stack.
     * @returns The calculated z-index value.
     */
    private calculateZIndex;
    /**
     * Applies the stacked CSS class to all dialogs except the topmost one.
     *
     * @private
     */
    private applyStackedClasses;
    /**
     * Recalculates and applies sizes for all remaining dialogs in the stack.
     *
     * @private
     */
    private recalculateStackSizes;
    /**
     * Applies stack-related styles to a dialog element.
     *
     * @private
     * @param ref - The dialog reference.
     * @param stackLevel - The stack level for this dialog.
     * @param computedWidth - The computed width for this dialog.
     * @param computedHeight - The computed height for this dialog.
     */
    private applyStackStyles;
}
//# sourceMappingURL=DialogStackBehavior.d.ts.map