/**
 * Copyright IBM Corp. 2021, 2025
 * SPDX-License-Identifier: MPL-2.0
 */
import Component from '@glimmer/component';
import type { WithBoundArgs } from '@glint/template';
import HdsDialogPrimitiveHeader from '../dialog-primitive/header';
import HdsDialogPrimitiveBody from '../dialog-primitive/body';
import HdsDialogPrimitiveFooter from '../dialog-primitive/footer';
import { HdsModalSizeValues, HdsModalColorValues } from './types.ts';
import type { HdsModalSizes, HdsModalColors } from './types.ts';
export declare const DEFAULT_SIZE = HdsModalSizeValues.Medium;
export declare const DEFAULT_COLOR = HdsModalColorValues.Neutral;
export declare const SIZES: HdsModalSizes[];
export declare const COLORS: HdsModalColors[];
export interface HdsModalSignature {
    Args: {
        isDismissDisabled?: boolean;
        size?: HdsModalSizes;
        color?: HdsModalColors;
        returnFocusTo?: string;
        onOpen?: () => void;
        onClose?: (event: Event) => void;
    };
    Blocks: {
        default: [
            {
                Header?: WithBoundArgs<typeof HdsDialogPrimitiveHeader, 'id' | 'onDismiss' | 'contextualClassPrefix'>;
                Body?: WithBoundArgs<typeof HdsDialogPrimitiveBody, 'contextualClass'>;
                Footer?: WithBoundArgs<typeof HdsDialogPrimitiveFooter, 'onDismiss' | 'contextualClass'>;
            }
        ];
    };
    Element: HTMLDialogElement;
}
export default class HdsModal extends Component<HdsModalSignature> {
    private _isOpen;
    private _element;
    private _body;
    private _bodyInitialOverflowValue;
    private _clickOutsideToDismissHandler;
    get isDismissDisabled(): boolean;
    get size(): HdsModalSizes;
    get color(): HdsModalColors;
    get id(): string;
    get classNames(): string;
    private _performCloseCleanup;
    registerOnCloseCallback: (event: Event) => void;
    private _registerDialog;
    open: () => void;
    onDismiss: () => Promise<void>;
}
