import { CSSProperties, ReactNode, DetailedHTMLProps, HTMLAttributes } from 'react';
import { ResizeBoxProps } from '../resize-box/interface';
export declare type BreakpointType = 'xxxl' | 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs';
/**
* @title Layout
*/
export interface LayoutProps extends Omit, HTMLElement>, 'className' | 'ref'> {
style?: CSSProperties;
className?: string | string[];
}
/**
* @title Layout.Header
*/
export interface HeaderProps extends Omit, HTMLElement>, 'className' | 'ref'> {
className?: string | string[];
}
/**
* @title Layout.Footer
*/
export interface FooterProps extends Omit, HTMLElement>, 'className' | 'ref'> {
className?: string | string[];
}
/**
* @title Layout.Content
*/
export interface ContentProps extends Omit, HTMLElement>, 'className' | 'ref'> {
className?: string | string[];
}
/**
* @title Layout.Sider
*/
export interface SiderProps {
children?: ReactNode;
style?: CSSProperties;
className?: string | string[];
sign?: 'sider';
/**
* 主题颜色
* @defaultValue light
*/
theme?: 'dark' | 'light';
/**
* 当前收起状态
*/
collapsed?: boolean;
/**
* 是否可收起
*/
collapsible?: boolean;
/**
* 收缩宽度
* @defaultValue 48
*/
collapsedWidth?: number;
/**
* 是否默认收起
*/
defaultCollapsed?: boolean;
/**
* 翻转折叠提示箭头的方向,当 Sider 在右边时可以使用
*/
reverseArrow?: boolean;
/**
* 自定义底部折叠触发器,设置为 null 时隐藏 trigger
*/
trigger?: string | ReactNode;
/**
* 宽度
* @defaultValue 200
*/
width?: number | string;
/**
* 自适应宽度,由css决定
* @defaultValue false
*/
autoWidth?: boolean;
/**
* 展开-收起时的回调函数,有点击 trigger 以及响应式反馈两种方式可以触发
*/
onCollapse?: (collapse: boolean, type: 'clickTrigger' | 'responsive') => void;
/**
*
* 可以用 ResizeBox 替换原生的 `aside` 标签,这个参数即 ResizeBox的 `directions` 参数。
* 详情请看 [ResizeBox](/react/components/resize-box)。
*/
resizeDirections?: string[];
/**
* 触发响应式布局的断点, 详见[响应式栅格](/react/components/Grid)
*/
breakpoint?: BreakpointType;
/**
* 可以接受 `ResizeBox` 所有参数,在伸缩开启时,可以通过 `resizeBoxProps` 对菜单栏的 `width` 进行受控展示或者与 `collapsed` 联动
*/
resizeBoxProps?: ResizeBoxProps;
/**
* 触发响应式布局断点时的回调
*/
onBreakpoint?: (broken: boolean) => void;
onSiderMount?: (id: string) => void;
onSiderUnmount?: (id: string) => void;
}