import { type RefObject } from "react";
import { type CalculateFixedPositionOptions, type PositionAnchor } from "../positioning/types.js";
import { type CSSTransitionClassNamesObject } from "../transition/types.js";
import { type LabelRequiredForA11y } from "../types.js";
import { type BaseDialogProps } from "./Dialog.js";
export interface BaseFixedDialogProps extends Omit<BaseDialogProps, "type"> {
    anchor?: PositionAnchor;
    fixedTo: RefObject<HTMLElement>;
    options?: CalculateFixedPositionOptions;
    getFixedPositionOptions?(): CalculateFixedPositionOptions;
    /**
     * @defaultValue `true`
     */
    overlayHidden?: boolean;
    /**
     * @defaultValue `true`
     */
    disableScrollLock?: boolean;
}
export type FixedDialogProps = LabelRequiredForA11y<BaseFixedDialogProps>;
export declare const DEFAULT_FIXED_DIALOG_CLASSNAMES: Readonly<CSSTransitionClassNamesObject>;
/**
 * **Client Component**
 *
 * @example Simple Example
 * ```tsx
 * import {
 *   Button,
 *   DialogHeader,
 *   DialogTitle,
 *   DialogContent,
 *   DialogFooter,
 *   FixedDialog,
 *   Typography,
 *   useToggle,
 * } from "@react-md/core";
 * import { useId, useRef, type ReactElement } from "react";
 *
 * function Example(): ReactElement {
 *   const {
 *     toggle,
 *     disable: onRequestClose,
 *     toggled: visible,
 *   } = useToggle(false);
 *   const titleId = useId();
 *   const fixedTo = useRef<HTMLButtonElement>(null)
 *
 *   return (
 *     <>
 *       <Button ref={fixedTo} onClick={toggle}>Toggle</Button>
 *       <FixedDialog
 *         aria-labelledby={titleId}
 *         fixedTo={fixedTo}
 *         visible={visible}
 *         onRequestClose={onRequestClose}
 *       >
 *         <DialogHeader>
 *           <DialogTitle id={titleId}>Simple Dialog</DialogTitle>
 *         </DialogHeader>
 *         <DialogContent>
 *           <Typography margin="none">This is some text in a dialog.</Typography>
 *         </DialogContent>
 *         <DialogFooter>
 *           <Button onClick={onRequestClose}>
 *             Close
 *           </Button>
 *         </DialogFooter>
 *       </FixedDialog>
 *     </>
 *   );
 * }
 * ```
 */
export declare const FixedDialog: import("react").ForwardRefExoticComponent<FixedDialogProps & import("react").RefAttributes<HTMLDivElement>>;
