import * as React from "react"; import { IAvatarProps } from "../Avatar"; import { IButtonProps } from "../Button"; import { IIconProps } from "../Icon"; import { IImageProps } from "../Image"; interface IModalSection { title?: string; icon?: IIconProps; subtitle?: string; action?: IButtonProps; image?: IImageProps; separator?: string | boolean; } export interface IModalProps { sections?: IModalSection[]; /** * Instead of conforming to the standard modal layout, * one can provide custom render functions. */ renderSections?: Array<() => any>; /** * If provided, will render a gray lip at the top of the modal */ lip?: string | boolean; /** * If provided, an will be shown at the top of the modal */ avatar?: IAvatarProps; /** * If provided, will open a bottom "lip" with the contents the result of the "tuck" render function */ tuck?: () => any; isOpen?: boolean; /** * If provided, will add a tap gesture to the surrounding overlay to dismiss the modal */ hammer?: any; /** * Animation callbacks */ onOpenStart?: () => void; onOpenEnd?: () => void; onCloseStart?: () => void; onCloseEnd?: () => void; className?: string; } export declare class Modal extends React.PureComponent { ref: React.RefObject; constructor(props: any); componentDidMount(): void; componentDidUpdate(prevProps: IModalProps): void; render(): JSX.Element; private close; private open; private closeTuck; private openTuck; private initializeOverlay; private needsToCloseOverlay; private needsToOpenOverlay; private getBottomValueBeneathParent; private getBottomValueInCenterOfParent; private withNode; private withTuckNode; } export {};