import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
import { SpacingProp } from '../../../../types/src/space';
import { CSSResultGroup } from 'lit';

/**
 * @summary SpacingContainer allows for flexible layout spacing between child elements, vertically or horizontally, with varying sizes.
 *
 * @csspart base - The component's base container, applying flex layout.
 *
 * @slot - One or more elements to display in the spacing container.
 *
 * @cssproperty [--spacing-container-direction=horizontal] - The flex direction of the spacing container.
 * @cssproperty [--spacing-container-gap=var(--cx-spacing-medium)] - The spacing between child elements.
 * @cssproperty [--spacing-container-wrap=nowrap] - The flex-wrap style of the spacing container.
 * @cssproperty [--spacing-container-align-items=normal] - The align-items style of the spacing container.
 * @cssproperty [--spacing-container-justify-content=normal] - The justify-content style of the spacing container.
 */
export default class SpacingContainer extends CortexElement {
    static readonly styles: CSSResultGroup;
    /**
     * When set, and in vertical orientation, the child elements will stretch to fill the width of the container.
     */
    block: boolean;
    /**
     * The direction of the spacing container. This will determine if the child elements are spaced vertically or horizontally.
     */
    direction: 'vertical' | 'horizontal';
    /**
     * The spacing between child elements
     */
    spacing: SpacingProp;
    /**
     * The wrap behavior of the container.
     */
    wrap: 'wrap' | 'nowrap' | 'wrap-reverse';
    /**
     * Proxy for justify-content CSS property.
     */
    justifyContent: 'start' | 'end' | 'flex-start' | 'flex-end' | 'center' | 'left' | 'right' | 'normal' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch';
    /**
     * Proxy for align-items CSS property.
     */
    alignItems: 'normal' | 'center' | 'start' | 'end' | 'baseline' | 'stretch' | 'flex-start' | 'flex-end';
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-space': SpacingContainer;
    }
}
