import { type RefObject } from "react";
import { type CalculateFixedPositionOptions, type PositionAnchor } from "../positioning/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>;
/**
 * **Client Component**
 *
 * @example Simple Example
 * ```tsx
 * import { Button } from "@react-md/core/button/Button";
 * import { Dialog } from "@react-md/core/dialog/Dialog";
 * import { DialogContent } from "@react-md/core/dialog/DialogContent";
 * import { DialogFooter } from "@react-md/core/dialog/DialogFooter";
 * import { DialogHeader } from "@react-md/core/dialog/DialogHeader";
 * import { DialogTitle } from "@react-md/core/dialog/DialogTitle";
 * import { FixedDialog } from "@react-md/core/dialog/FixedDialog";
 * import { Typography } from "@react-md/core/typography/Typography";
 * import { useToggle } from "@react-md/core/useToggle";
 * 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>
 *     </>
 *   );
 * }
 * ```
 *
 * @see {@link https://react-md.dev/components/dialog#fixed-dialog | FixedDialog Demos}
 */
export declare const FixedDialog: import("react").ForwardRefExoticComponent<FixedDialogProps & import("react").RefAttributes<HTMLDivElement>>;
