import * as React from 'react';
interface CommonWorkspaceLayoutProps {
    /**
     * Default size for the layout component.
     *
     * The size is `width` if the component is inside layout row
     * and `height` if it is inside column.
     *
     * **Default** is computed automatically by dividing the space
     * evenly between child components.
     */
    defaultSize?: number;
    /**
     * Whether the layout component is collapsed by default.
     *
     * @default false
     */
    defaultCollapsed?: boolean;
    /**
     * Size to use when the layout component is collapsed.
     *
     * The size is `width` if the component is inside layout row
     * and `height` if it is inside column.
     *
     * **Default** is `28` for a layout row, otherwise it is computed
     * automatically.
     */
    collapsedSize?: number;
    /**
     * Minimum size for the layout component.
     *
     * If the layout component is resized below this size
     * it would be considered collapsed.
     *
     * The size is `width` if the component is inside layout row
     * and `height` if it is inside column.
     */
    minSize?: number;
    /**
     * Disables the docking for the layout component.
     *
     * A layout component with docking displays controls to expand/collapse it
     * if the component is the first or the last one within a column.
     *
     * @default false
     */
    undocked?: boolean;
}
/**
 * Props for {@link WorkspaceLayoutRow} and {@link WorkspaceLayoutColumn} components.
 *
 * @see {@link WorkspaceLayoutRow}
 * @see {@link WorkspaceLayoutColumn}
 */
export interface WorkspaceLayoutContainerProps extends CommonWorkspaceLayoutProps {
    /**
     * Expand/collapse animation duration for the child layout items.
     */
    animationDuration?: number;
    /**
     * Child layout components.
     */
    children: WorkspaceChild | ReadonlyArray<WorkspaceChild>;
}
type WorkspaceChild = React.ReactElement<WorkspaceLayoutContainerProps | WorkspaceLayoutItemProps>;
/**
 * Layout component to display a row of resizable sub-components.
 *
 * This component accepts only layout rows, columns or items as children.
 *
 * @category Components
 * @see {@link WorkspaceLayoutColumn}
 * @see {@link WorkspaceLayoutItem}
 */
export declare function WorkspaceLayoutRow(props: WorkspaceLayoutContainerProps): import("react/jsx-runtime").JSX.Element;
/**
 * Layout component to display a column of resizable sub-components.
 *
 * This component accepts only layout rows, columns or items as children.
 *
 * @category Components
 * @see {@link WorkspaceLayoutRow}
 * @see {@link WorkspaceLayoutItem}
 */
export declare function WorkspaceLayoutColumn(props: WorkspaceLayoutContainerProps): import("react/jsx-runtime").JSX.Element;
/**
 * Props for {@link WorkspaceLayoutItem} component.
 *
 * @see {@link WorkspaceLayoutItem}
 */
export interface WorkspaceLayoutItemProps extends CommonWorkspaceLayoutProps {
    /**
     * Unique layout component ID withing the layout component tree.
     */
    id: string;
    /**
     * Heading content for the layout item.
     */
    heading?: React.ReactNode;
    /**
     * Layout item children.
     *
     * When the layout item is collapsed, the children will not render.
     */
    children: React.ReactElement;
}
/**
 * Layout component to display an item withing a layout row or columns.
 *
 * The item may be collapsed, in that case the children will not be rendered.
 *
 * @category Components
 * @see {@link WorkspaceLayoutRow}
 * @see {@link WorkspaceLayoutColumn}
 */
export declare function WorkspaceLayoutItem(props: WorkspaceLayoutItemProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
/**
 * Context with handlers for layout component events.
 */
export interface WorkspaceLayoutResizeContext {
    /**
     * Handler for starting layout component resize.
     */
    onStartResize?: (direction: 'vertical' | 'horizontal') => void;
    /**
     * Handler for each size change while resizing a layout component.
     */
    onResize?: (direction: 'vertical' | 'horizontal') => void;
}
/**
 * React context with handlers for layout component events.
 */
export declare const WorkspaceLayoutResizeContext: React.Context<WorkspaceLayoutResizeContext | null>;
export {};
//# sourceMappingURL=workspaceLayout.d.ts.map