import React from 'react'; import PropTypes from 'prop-types'; import { StandardProps } from '../../util/component-types'; import * as reducers from './Submarine.reducers'; export interface ISubmarineState { isExpanded: boolean; height: number; } /** Primary */ export interface ISubmarinePrimaryProps extends StandardProps { } /** Title */ export interface ISumbarineTitleProps extends StandardProps { } /** Bar */ export interface ISubmarineBarProps extends StandardProps { Title?: ISumbarineTitleProps | string; } export interface ISubmarineProps extends StandardProps { /** Sets the starting height of the Bar. */ height: number; /** Force the Submarine to be expanded or collapsed. */ isExpanded: boolean; /** Indicates if the Submarine should be shown or not. This will override the value of isExpanded. */ isHidden: boolean; /** Indicates if the Title should be shown when the Submarine is collapsed */ isTitleShownCollapsed: boolean; /** Allows animated expand and collapse behavior. */ isAnimated: boolean; /** Render the Submarine to the top or bottom of primary content. */ position: 'top' | 'bottom'; /** Disable user resizing of the Submarine. */ isResizeDisabled: boolean; /** Set the title of the Submarine. */ Title?: React.ReactNode; /** Set the title of the Submarine. */ Primary?: React.ReactNode; /** Set the content and title of the Submarine Bar. */ Bar?: React.ReactNode; /** Called when the user is currently resizing the Submarine. */ onResizing: (height: number, { event, props }: { event: MouseEvent | TouchEvent; props: ISubmarineProps; }) => void; /** Called when the user resizes the Submarine. */ onResize: (height: number, { event, props }: { event: MouseEvent | TouchEvent; props: ISubmarineProps; }) => void; /** Called when the user expands or collapses the Submarine. */ onToggle: ({ event, props, }: { event: React.MouseEvent; props: ISubmarineProps; }) => void; initialState?: Object; } declare class Submarine extends React.Component { static displayName: string; static Bar: { (_props: ISubmarineBarProps): null; peek: { description: string; }; displayName: string; propName: string; propTypes: { /** Set the title of the Submarine. (alias for \`Submarine.Title\`) */ Title: PropTypes.Requireable; }; }; static Title: { (_props: ISumbarineTitleProps): null; peek: { description: string; }; displayName: string; propName: string; }; static Primary: { (_props: ISubmarinePrimaryProps): null; peek: { description: string; }; displayName: string; propName: string; }; static peek: { description: string; categories: string[]; madeFrom: string[]; }; static reducers: typeof reducers; static propTypes: { /** Appended to the component-specific class names set on the root element. Value is run through the \`classnames\` library. */ className: PropTypes.Requireable; /** Direct children must be types {Submarine.Primary, Submarine.Bar, Submarine.Title}. All content is composed as children of these respective elements. */ children: PropTypes.Requireable; /** Sets the starting height of the Bar. */ height: PropTypes.Requireable; /** Force the Submarine to be expanded or collapsed. */ isExpanded: PropTypes.Requireable; /** Indicates if the Submarine should be shown or not. This will override the value of isExpanded. */ isHidden: PropTypes.Requireable; /** Indicates if the Title should be shown when the Submarine is collapsed */ isTitleShownCollapsed: PropTypes.Requireable; /** Allows animated expand and collapse behavior. */ isAnimated: PropTypes.Requireable; /** Render the Submarine to the top or bottom of primary content. */ position: PropTypes.Requireable; /** Disable user resizing of the Submarine. */ isResizeDisabled: PropTypes.Requireable; /** Set the title of the Submarine. */ Title: PropTypes.Requireable; /** Set the Submarine Bar content. */ Bar: PropTypes.Requireable; /** Set the primary content of the Submarine. */ Primary: PropTypes.Requireable; /** Called when the user is currently resizing the Submarine. Signature: \`(height, { event, props }) => {}\` */ onResizing: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user resizes the Submarine. Signature: \`(height, { event, props }) => {}\` */ onResize: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user expands or collapses the Submarine. Signature: \`({ event, props }) => {}\` */ onToggle: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { isExpanded: boolean; isAnimated: boolean; height: number; position: "bottom"; isResizeDisabled: boolean; isHidden: boolean; isTitleShownCollapsed: boolean; onResizing: (...args: any[]) => void; onResize: (...args: any[]) => void; onToggle: (...args: any[]) => void; }; handleExpanderClick: ({ event, }: { event: React.MouseEvent; }) => void; handleResizing: (height: number, { event }: { event: MouseEvent | TouchEvent; }) => void; handleResize: (height: number, { event }: { event: MouseEvent | TouchEvent; }) => void; render(): JSX.Element; } declare const _default: typeof Submarine & import("../../util/state-management").IHybridComponent; export default _default; export { Submarine as SubmarineDumb }; //# sourceMappingURL=Submarine.d.ts.map