import { ComponentElement, Component } from 'react'; import type { PlacementPropValues } from '@instructure/ui-position'; import { DrawerContent } from './DrawerContent'; import type { DrawerLayoutContentProps, DrawerContentSize } from './DrawerContent/props'; import { DrawerTray } from './DrawerTray'; import type { DrawerLayoutTrayProps } from './DrawerTray/props'; import type { DrawerLayoutProps, DrawerLayoutState } from './props'; type TrayChild = ComponentElement; type ContentChild = ComponentElement; /** --- category: components --- **/ declare class DrawerLayout extends Component { static readonly componentId = "DrawerLayout"; static locatorAttribute: string; static allowedProps: readonly ("children" | "dir" | "minWidth" | "onOverlayTrayChange")[]; static defaultProps: { minWidth: string; }; static Content: typeof DrawerContent; static Tray: typeof DrawerTray; constructor(props: DrawerLayoutProps); private readonly _id; private _content; private _tray; ref: Element | null; handleRef: (el: Element | null) => void; componentDidMount(): void; componentDidUpdate(): void; get trayProps(): { label: string; children?: React.ReactNode | (() => React.ReactNode); render?: () => React.ReactNode; placement?: import("./DrawerTray/props").DrawerTrayPlacement; open?: boolean; onOpen?: (transitionType?: import("@instructure/ui-motion").TransitionType) => void; onClose?: (transitionType?: import("@instructure/ui-motion").TransitionType) => void; border?: boolean; shadow?: boolean; contentRef?: (element: HTMLDivElement | null) => void; mountNode?: import("@instructure/ui-position").PositionMountNode; } & { defaultFocusElement?: import("@instructure/shared-types").UIElement; liveRegion?: import("@instructure/shared-types").LiveRegion; onDismiss?: (event: React.UIEvent | React.FocusEvent, documentClick?: boolean) => void; shouldContainFocus?: boolean; shouldReturnFocus?: boolean; shouldCloseOnDocumentClick?: boolean; shouldCloseOnEscape?: boolean; } & { onTransition?: (toState: import("@instructure/ui-motion").BaseTransitionStatesType, fromState: import("@instructure/ui-motion").BaseTransitionStatesType) => void; onEnter?: () => void; onEntering?: () => void; onEntered?: (type?: import("@instructure/ui-motion").TransitionType) => void; onExit?: () => void; onExiting?: () => void; onExited?: (type?: import("@instructure/ui-motion").TransitionType) => void; } & { dir?: "ltr" | "rtl"; } & { children?: import("react").ReactNode | undefined; } & { styles?: import("./DrawerTray/props").DrawerLayoutTrayStyle | undefined; makeStyles?: (extraArgs?: Record) => void; } & { themeOverride?: Partial | ((componentTheme: import("@instructure/shared-types").DrawerLayoutTrayTheme, currentTheme: import("@instructure/shared-types").BaseTheme) => Partial) | undefined; } & Omit React.ReactNode); render?: () => React.ReactNode; placement?: import("./DrawerTray/props").DrawerTrayPlacement; open?: boolean; onOpen?: (transitionType?: import("@instructure/ui-motion").TransitionType) => void; onClose?: (transitionType?: import("@instructure/ui-motion").TransitionType) => void; border?: boolean; shadow?: boolean; contentRef?: (element: HTMLDivElement | null) => void; mountNode?: import("@instructure/ui-position").PositionMountNode; } & { defaultFocusElement?: import("@instructure/shared-types").UIElement; liveRegion?: import("@instructure/shared-types").LiveRegion; onDismiss?: (event: React.UIEvent | React.FocusEvent, documentClick?: boolean) => void; shouldContainFocus?: boolean; shouldReturnFocus?: boolean; shouldCloseOnDocumentClick?: boolean; shouldCloseOnEscape?: boolean; } & { onTransition?: (toState: import("@instructure/ui-motion").BaseTransitionStatesType, fromState: import("@instructure/ui-motion").BaseTransitionStatesType) => void; onEnter?: () => void; onEntering?: () => void; onEntered?: (type?: import("@instructure/ui-motion").TransitionType) => void; onExit?: () => void; onExiting?: () => void; onExited?: (type?: import("@instructure/ui-motion").TransitionType) => void; } & { dir?: "ltr" | "rtl"; } & { children?: import("react").ReactNode | undefined; } & Element>, "label" | "children" | "contentRef" | "dir" | "open" | "border" | "render" | "placement" | "onOpen" | "onClose" | "shadow" | "mountNode" | keyof { defaultFocusElement?: import("@instructure/shared-types").UIElement; liveRegion?: import("@instructure/shared-types").LiveRegion; onDismiss?: (event: React.UIEvent | React.FocusEvent, documentClick?: boolean) => void; shouldContainFocus?: boolean; shouldReturnFocus?: boolean; shouldCloseOnDocumentClick?: boolean; shouldCloseOnEscape?: boolean; } | keyof { onTransition?: (toState: import("@instructure/ui-motion").BaseTransitionStatesType, fromState: import("@instructure/ui-motion").BaseTransitionStatesType) => void; onEnter?: () => void; onEntering?: () => void; onEntered?: (type?: import("@instructure/ui-motion").TransitionType) => void; onExit?: () => void; onExiting?: () => void; onExited?: (type?: import("@instructure/ui-motion").TransitionType) => void; }> & { dir?: "ltr" | "rtl"; } & import("react").Attributes; get trayPlacement(): PlacementPropValues; get contentMargin(): number; get contentStyle(): { marginLeft: string; marginRight: string; }; handleTrayContentRef: (el: HTMLDivElement | null) => void; shouldOverlayTray(minWidth: string, trayWidth: number, contentWidth: number, trayIsOverlayed: boolean): boolean; getNextState(minWidth: string, trayWidth: number, contentWidth: number, trayIsOverlayed: boolean): { trayWidth: number; contentWidth: number; shouldOverlayTray: boolean; }; notifyOverlayTrayChange(shouldOverlayTray: boolean): void; handleContentSizeChange: ({ width }: DrawerContentSize) => void; handleTraySizeChange: ({ width }: { width: number; }) => void; handleTrayTransitionEnter: () => void; handleTrayTransitionExit: () => void; renderChildren(): (TrayChild | ContentChild)[]; render(): import("@emotion/react/jsx-runtime").JSX.Element; } export default DrawerLayout; export { DrawerLayout, DrawerContent, DrawerTray }; export declare const DrawerLayoutContext: import("react").Context; //# sourceMappingURL=index.d.ts.map