import '../../../../assert/js/assert.js';
import '../../../../globals.js';
import Orientation from '../../../../phet-core/js/Orientation.js';
import { HorizontalLayoutAlign, LayoutAlign, LayoutOrientation, MarginLayoutConfigurableOptions, RestrictedHorizontalLayoutAlign, RestrictedVerticalLayoutAlign, VerticalLayoutAlign } from '../../imports.js';
import Constructor from '../../../../phet-core/js/types/Constructor.js';
import WithoutNull from '../../../../phet-core/js/types/WithoutNull.js';
import TEmitter from '../../../../axon/js/TEmitter.js';
import { TMarginLayoutConfigurable } from './MarginLayoutConfigurable.js';
declare const FLOW_CONFIGURABLE_OPTION_KEYS: string[];
type SelfOptions = {
    orientation?: LayoutOrientation | null;
    align?: HorizontalLayoutAlign | VerticalLayoutAlign | null;
    cellAlign?: RestrictedVerticalLayoutAlign | RestrictedHorizontalLayoutAlign | null;
    stretch?: boolean;
    grow?: number | null;
};
export type FlowConfigurableOptions = SelfOptions & MarginLayoutConfigurableOptions;
export type ExternalFlowConfigurableOptions = WithoutNull<FlowConfigurableOptions, Exclude<keyof FlowConfigurableOptions, 'minContentWidth' | 'minContentHeight' | 'maxContentWidth' | 'maxContentHeight'>>;
type TFlowConfigurable = {
    _align: LayoutAlign | null;
    _cellAlign: LayoutAlign | null;
    _stretch: boolean | null;
    _grow: number | null;
    readonly orientationChangedEmitter: TEmitter;
    orientation: LayoutOrientation;
    align: HorizontalLayoutAlign | VerticalLayoutAlign | null;
    stretch: boolean | null;
    grow: number | null;
    _orientation: Orientation;
} & TMarginLayoutConfigurable;
declare const FlowConfigurable: <SuperType extends Constructor>(k: SuperType) => SuperType & Constructor<TFlowConfigurable>;
export default FlowConfigurable;
export { FLOW_CONFIGURABLE_OPTION_KEYS };
//# sourceMappingURL=FlowConfigurable.d.ts.map