///
import { IReadonlyObservableValue } from '../../Core/Observable';
/**
* Enum which describes which way the children should be laid out
*/
export declare enum SplitterDirection {
/**
* Children will be laid out left to right and divided vertically
*/
Vertical = 0,
/**
* Children will be laid out top to bottom and divided horizontally
*/
Horizontal = 1
}
/**
* Enum which describes a position, near or far
*/
export declare enum SplitterElementPosition {
/**
* Left/Top element
*/
Near = 0,
/**
* Right/Bottom element
*/
Far = 1
}
/**
* Enum which describes how the fixed size is specified
*/
export declare enum FixedSizeLimitsFormat {
/**
* minFixedSize and maxFixedSize are specified in pixels
*/
Pixels = 0,
/**
* minFixedSize and maxFixedSize are specified as a percentage of the total size (e.g. 0.6)
*/
Percentage = 1
}
export interface ISplitterProps {
/**
* Optional aria-label for the divider
*/
ariaLabel?: string;
/**
* Optional aria-labeledby for the divider
*/
ariaLabelledBy?: string;
/**
* Optional className to apply to the splitter
* container div.
*/
className?: string;
/**
* If true, show the fixed side of the splitter in a collapsed form.
*/
collapsed?: IReadonlyObservableValue | boolean;
/**
* Is the splitter disabled
*/
disabled?: boolean;
/**
* Specific tooltip to use for the expand button that is shown in the collapsed state.
*
* @default "Show more information"
*/
expandTooltip?: string;
/**
* Optional classname for the root Splitter far element.
*/
farElementClassName?: string;
/**
* Which element is the fixed element. @default SplitterElementPosition.Far
*/
fixedElement?: SplitterElementPosition;
/**
* The size of the fixed element
*/
fixedSize?: IReadonlyObservableValue | number;
/**
* The initial fixed size, if this element does not have a controlled width. Defaults to 50%
*/
initialFixedSize?: number;
/**
* The minimum size of the fixed element
*/
minFixedSize?: number;
/**
* The maximum size of the fixed element
*/
maxFixedSize?: number;
/**
* Optional classname for the root Splitter near element.
*/
nearElementClassName?: string;
/**
* Callback for when the collapsed mode changes. If supplied, the collapsed state will
* be toggled
*/
onCollapsedChanged?: (collapsed: boolean) => void;
/**
* Callback for when the fixed size changes
*/
onFixedSizeChanged?: (newFixedSize: number) => void;
/**
* Render the content of the far (last) element
*/
onRenderFarElement?: () => JSX.Element;
/**
* Render the content of the near (first) element
*/
onRenderNearElement?: () => JSX.Element;
/**
* The direction of the splitter. @default SplitterDirection.Vertical
*/
splitterDirection?: SplitterDirection;
/**
* Format of fixed size limits. @default FixedSizeLimitsFormat.Pixels
*/
fixedSizeLimitsFormat?: FixedSizeLimitsFormat;
}