/** * Copyright 2022, SumUp Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { type ReactNode, type HTMLAttributes } from 'react'; import { type StackItem } from '../../hooks/useStack/index.js'; import { type SidePanelProps } from './SidePanel.js'; import type { SidePanelHookProps } from './useSidePanel.js'; export type SetSidePanel = (sidePanel: SidePanelContextItem) => void; export type UpdateSidePanel = (sidePanel: Partial & Pick, 'group'>) => void; export type RemoveSidePanel = (group: SidePanelHookProps['group'], isInstantClose?: boolean) => Promise; export type SidePanelContextItem = SidePanelHookProps & Pick & StackItem & { isInstantOpen?: boolean; isInstantClose?: boolean; }; type SidePanelContextValue = { setSidePanel: SetSidePanel; updateSidePanel: UpdateSidePanel; removeSidePanel: RemoveSidePanel; isPrimaryContentResized: boolean; transitionDuration: number; }; export declare const SidePanelContext: import("react").Context; export interface SidePanelProviderProps extends HTMLAttributes { /** * The SidePanelProvider should wrap your entire primary content, * which will be resized when the side panel is opened. */ children: ReactNode; } export declare function SidePanelProvider({ children, ...props }: SidePanelProviderProps): import("react/jsx-runtime").JSX.Element; export {};