import { Environment, SugaredRelativeSingleEntity } from '@contember/binding';
import { PureComponent, ReactElement, ReactNode } from 'react';
import { LabelMiddleware } from './LabelMiddleware';
export interface SideDimensionsProps extends SideDimensions.CommonDimensionProps {
    dimension?: string;
    staticOptions?: Array<Environment.Value>;
    children: ReactNode;
    alignChildren?: boolean;
}
declare class SideDimensions extends PureComponent<SideDimensionsProps> {
    static displayName: string;
    render(): JSX.Element;
    static staticRender(props: SideDimensionsProps, environment: Environment): ReactElement | null;
}
declare namespace SideDimensions {
    interface CommonDimensionProps {
        hasOneField?: string | SugaredRelativeSingleEntity;
        variableName?: Environment.Name;
        variables?: Environment.ValuesMapWithFactory | ((dimensionValue: Environment.Value) => Environment.ValuesMapWithFactory);
        labelMiddleware?: LabelMiddleware;
    }
    interface SingleDimensionProps extends CommonDimensionProps {
        children: ReactNode;
        environment: Environment;
        dimensionValue: Environment.Value;
        renderDimensionValue: boolean;
    }
    class SingleDimension extends PureComponent<SingleDimensionProps> {
        static displayName: string;
        render(): JSX.Element;
        getLabelMiddleware(): LabelMiddleware | undefined;
        static staticRender(props: SingleDimensionProps, environment: Environment): ReactNode;
        static generateEnvironment(props: SingleDimensionProps, oldEnvironment: Environment): Environment;
    }
}
export { SideDimensions };
//# sourceMappingURL=SideDimensions.d.ts.map