import { GdsElement } from '../../gds-element';
type Constructor<T = GdsElement> = new (...args: any[]) => T;
export interface SizeXProps {
    width?: string;
    'min-width'?: string;
    'max-width'?: string;
    'inline-size'?: string;
    'min-inline-size'?: string;
    'max-inline-size'?: string;
}
/**
 * Mixin that adds horizontal and inline sizing properties to a component.
 */
export declare function withSizeXProps<T extends Constructor<GdsElement>>(base: T): Constructor<SizeXProps> & T;
export interface SizeYProps {
    height?: string;
    'min-height'?: string;
    'max-height'?: string;
    'block-size'?: string;
    'min-block-size'?: string;
    'max-block-size'?: string;
}
/**
 * Mixin that adds vertical and block sizing properties to a component.
 */
export declare function withSizeYProps<T extends Constructor<GdsElement>>(base: T): Constructor<SizeYProps> & T;
export interface MarginProps {
    margin?: string;
    'margin-inline'?: string;
    'margin-block'?: string;
}
/**
 * Mixin that adds margin properties to a component.
 */
export declare function withMarginProps<T extends Constructor<GdsElement>>(base: T): Constructor<MarginProps> & T;
export interface PaddingProps {
    padding?: string;
    'padding-inline'?: string;
    'padding-block'?: string;
}
/**
 * Mixin that adds padding properties to a component.
 */
export declare function withPaddingProps<T extends Constructor<GdsElement>>(base: T): Constructor<PaddingProps> & T;
export interface LayoutChildProps {
    'align-self'?: string;
    'justify-self'?: string;
    'place-self'?: string;
    'grid-column'?: string;
    'grid-row'?: string;
    'grid-area'?: string;
    flex?: string;
    order?: string;
}
/**
 * Mixin that adds layout child properties to a component.
 *
 * 'Layout child' properties are properties that are applies to the children of layout containers such as `gds-div`, `gds-flex` and `gds-grid`.
 */
export declare function withLayoutChildProps<T extends Constructor<GdsElement>>(base: T): Constructor<LayoutChildProps> & T;
export interface PositioningProps {
    position?: string;
    transform?: string;
    inset?: string;
}
/**
 * Mixin that adds positioning properties to a component.
 */
export declare function withPositioningProps<T extends Constructor<GdsElement>>(base: T): Constructor<PositioningProps> & T;
export {};
