import { IStyle } from 'fela';
import { FelaStyle, StyleFunction } from 'react-fela';
import { BaseTheme } from '../baseTheme';
export interface BoxModelProps {
    inline?: boolean;
    width?: number | string;
    height?: number | string;
    fullWidth?: boolean;
    fullHeight?: boolean;
}
export interface BoxProps extends MarginProps, PaddingProps, FlexChildProps, FontProps, StylingProps, BoxModelProps {
}
declare type Direction = 'column' | 'row';
export interface FlexChildProps {
    grow?: number;
    shrink?: number;
    basis?: number | string;
    order?: number;
    align?: string;
}
export interface FlexContainerProps {
    inline?: boolean;
    direction?: Direction;
    nowrap?: boolean;
    center?: string;
    justifyContent?: string;
    alignItems?: string;
    stretch?: boolean;
}
export interface FlexProps extends BoxProps, FlexContainerProps {
}
export interface FontProps {
    font?: string;
    fontSize?: number | string;
    color?: string;
    bold?: boolean;
    ellipsis?: boolean;
}
export interface MarginProps {
    m?: number;
    mt?: number;
    mb?: number;
    ml?: number;
    mr?: number;
    mx?: number;
    my?: number;
}
export declare interface PaddingProps {
    p?: number;
    pt?: number;
    pb?: number;
    pl?: number;
    pr?: number;
    px?: number;
    py?: number;
}
export interface StylingProps {
    bg?: string;
}
export interface TextProps extends MarginProps, PaddingProps, FlexChildProps, FontProps {
}
interface WithBaseTheme {
    theme?: BaseTheme;
}
export interface AllProps extends BoxModelProps, FlexChildProps, FlexContainerProps, FontProps, MarginProps, PaddingProps, StylingProps, WithBaseTheme {
}
export interface WithStyle<T extends BaseTheme> {
    style?: FelaStyle<T>;
}
export declare const createBoxModelCSSProps: ({ inline, width, height, fullWidth, fullHeight }: BoxModelProps) => {
    display: string;
    width: string | number;
    height: string | number;
};
export declare const createFlexChildCSSProps: ({ grow, shrink, basis, order, align }: FlexChildProps) => IStyle;
export declare const createFontCSSProps: ({ theme, font, fontSize, color, bold, ellipsis }: FontProps & WithBaseTheme) => IStyle;
export declare const createMarginCSSProps: ({ theme, m, mt, mb, ml, mr, mx, my }: MarginProps & WithBaseTheme) => {};
export declare const createPaddingCSSProps: ({ theme, p, pt, pb, pl, pr, px, py }: PaddingProps & WithBaseTheme) => {};
export declare const createStylingCSSProps: ({ theme, bg }: StylingProps & WithBaseTheme) => {
    backgroundColor?: undefined;
} | {
    backgroundColor: any;
};
export declare function filterProps<T>(props: any): any;
export declare function mergeThemedStyles<T extends BaseTheme, P>(componentStyle: StyleFunction<T, P> | IStyle, passedStyle?: FelaStyle<T, P>): FelaStyle<T, P>;
export {};
