import { default as React } from 'react';
import { GridProps } from '@mui/material';
import { ExpandableSummaryWrapperProps } from '../expandable-summary-wrapper/expandable-summary-wrapper';

interface DynamicLayoutWrapperProps {
    children: React.ReactNode;
    mainContentProps?: Omit<GridProps, 'item' | 'xs'>;
    summaryContent: React.ReactNode;
    summaryProps?: Omit<ExpandableSummaryWrapperProps, 'children' | 'onToggle'>;
    maxGridSize?: number;
    defaultSummaryExpanded?: boolean;
    expandedSummarySize?: number;
    collapsedSummarySize?: number;
    containerProps?: Omit<GridProps, 'container'>;
    onLayoutChange?: (mainSize: number, summarySize: number, isExpanded: boolean) => void;
    enableTransitions?: boolean;
    transitionDuration?: number | string;
    transitionEasing?: string;
    storageKey?: string;
    fillHeight?: boolean;
}
export declare const DynamicLayoutWrapper: React.FC<DynamicLayoutWrapperProps>;
interface AdvancedDynamicLayoutWrapperProps extends DynamicLayoutWrapperProps {
    responsiveConfig?: {
        xs?: {
            expandedSize: number;
            collapsedSize: number;
        };
        sm?: {
            expandedSize: number;
            collapsedSize: number;
        };
        md?: {
            expandedSize: number;
            collapsedSize: number;
        };
        lg?: {
            expandedSize: number;
            collapsedSize: number;
        };
        xl?: {
            expandedSize: number;
            collapsedSize: number;
        };
    };
    multipleSummaries?: Array<{
        content: React.ReactNode;
        props?: Omit<ExpandableSummaryWrapperProps, 'children' | 'onToggle'>;
        id: string;
    }>;
    layoutMode?: 'horizontal' | 'vertical' | 'adaptive';
    minMainContentSize?: number;
    minSummarySize?: number;
}
export declare const AdvancedDynamicLayoutWrapper: React.FC<AdvancedDynamicLayoutWrapperProps>;
export declare const useDynamicLayout: (maxGridSize?: number, defaultSummaryExpanded?: boolean, expandedSize?: number, collapsedSize?: number) => {
    isExpanded: boolean;
    summarySize: number;
    mainSize: number;
    toggleSummary: () => void;
    setSummaryState: (expanded: boolean) => void;
};
export declare const calculateOptimalSizes: (totalSize: number, contentRatio?: number, minContentSize?: number, minSummarySize?: number) => {
    contentSize: number;
    summarySize: number;
    totalUsed: number;
};
export default DynamicLayoutWrapper;
