import React, { ReactNode } from 'react';
export type TMainMenu = string;
export type TRightHalfContainers = string;
export interface ICContainerDefault {
    defaultLeftBorderX: number;
    defaultLeftX: Record<TMainMenu, number>;
    defaultBorderX?: Record<TRightHalfContainers, number>;
}
export interface ICContainerState {
    leftX: Record<TMainMenu, number>;
    borderX: Record<TRightHalfContainers, number>;
    containerTransition: boolean;
    targetMenu: TMainMenu;
}
type CContainerAction = {
    type: 'SET_LEFT_WIDTH';
    payload: {
        id: TMainMenu;
        newX: number;
    };
} | {
    type: 'SET_BORDER_X';
    payload: {
        id: TRightHalfContainers;
        newX: number;
    };
} | {
    type: 'SET_CONTAINER_TRANSITION';
    payload: boolean;
} | {
    type: 'SET_MAIN_MENU';
    payload: TMainMenu;
};
export declare const setLeftWidth: (id: TMainMenu, newX: number) => CContainerAction;
export declare const setBorderX: (id: TRightHalfContainers, newX: number) => CContainerAction;
export declare const setContainerTransition: (payload: boolean) => CContainerAction;
export declare const setMainMenu: (payload: TMainMenu) => CContainerAction;
interface ICContainerProviderProps extends ICContainerDefault {
    menu: TMainMenu[];
    children: ReactNode;
}
export declare const CContainerProvider: React.FC<ICContainerProviderProps>;
export declare const useContainer: () => {
    state: ICContainerState;
    dispatch: React.Dispatch<CContainerAction>;
};
export {};
