/** @packageDocumentation
 * @module ContentView
 */
import "./ContentLayout.scss";
import * as React from "react";
import { UiEvent } from "@itwin/appui-abstract";
import type { CommonProps } from "@itwin/core-react";
import type { ContentGroup } from "./ContentGroup.js";
import type { ContentLayoutProps, LayoutFragmentProps } from "./ContentLayoutProps.js";
/** Properties for [[ContentWrapper]] */
interface ContentWrapperProps extends CommonProps {
    content: React.ReactNode;
    contentIndex: number | undefined;
}
/** ContentWrapper React component.
 * @internal
 */
export declare function ContentWrapper(props: ContentWrapperProps): React.JSX.Element;
/** Common interface for HorizontalSplit and VerticalSplit. */
interface LayoutSplit {
    createContentContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode;
    isLocked: boolean;
}
/** Content Layout Definition class.
 * @public
 */
export declare class ContentLayoutDef {
    private _layoutProps;
    private _rootSplit?;
    /** ID for this Content Layout */
    id: string;
    /** Description of the layout. */
    description: string;
    constructor(layoutProps: ContentLayoutProps);
    /** @deprecated in 4.16.0. Used internally. */
    get rootSplit(): LayoutSplit | undefined;
    /** Creates [[ContentLayoutProps]] for JSON purposes
     * @public
     */
    toJSON(): ContentLayoutProps;
    /** Fill a layout container with React nodes for each content view.
     * @deprecated in 4.16.0. Used internally.
     */
    fillLayoutContainer(contentNodes: React.ReactNode[], resizable: boolean): React.ReactNode | undefined;
    /** Gets the indexes of content views used in this Content Layout. */
    getUsedContentIndexes(): number[];
    private getHorizontalSplitContentIndexes;
    private getVerticalSplitContentIndexes;
    /** @internal */
    static createSplit(fragmentDef: LayoutFragmentProps): LayoutSplit | undefined;
}
/** Content Layout Activated Event Args class.
 * @public
 * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.
 */
export interface ContentLayoutActivatedEventArgs {
    contentLayout: ContentLayoutDef;
    contentGroup: ContentGroup;
}
/** Content Layout Activated Event class.
 * @public
 * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.
 */
export declare class ContentLayoutActivatedEvent extends UiEvent<ContentLayoutActivatedEventArgs> {
}
/** Properties for the [[ContentLayout]] React component.
 * @public
 */
export interface ContentLayoutComponentProps extends CommonProps {
    contentLayout: ContentLayoutDef;
    contentGroup: ContentGroup;
}
/** Content Layout React component.
 * @public
 */
export declare function ContentLayout(props: ContentLayoutComponentProps): React.JSX.Element | null;
export {};
//# sourceMappingURL=ContentLayout.d.ts.map