import React from 'react';
import * as StyledSystem from 'styled-system';
import * as H from 'history';
import { Theme } from '../theme';
import { UtilityProps } from './utility';
import { PseudoProps } from './pseudo';
declare type ThemedStyleProps = StyledSystem.SpaceProps<Theme, React.CSSProperties['margin']> & StyledSystem.ColorProps<Theme> & StyledSystem.LayoutProps<Theme> & StyledSystem.BackgroundProps<Theme> & StyledSystem.GridProps<Theme> & StyledSystem.ShadowProps<Theme> & StyledSystem.BorderProps<Theme> & StyledSystem.PositionProps<Theme> & StyledSystem.FlexboxProps<Theme> & StyledSystem.TypographyProps<Theme>;
declare type RoutingProps = {
    /** The url path to navigate, if the component implements a Link
     * @ignore
     */
    to?: H.LocationDescriptor<H.LocationState> | ((location: H.Location<H.LocationState>) => H.LocationDescriptor<H.LocationState>);
};
declare type EmotionProps = {
    /** The React Component or native HTML element to render instead.
     * @default "div"
     * @ignore
     */
    as?: React.ElementType;
};
export interface CustomStyleProps {
    shadow?: ThemedStyleProps['boxShadow'];
    fill?: ThemedStyleProps['color'];
    stroke?: ThemedStyleProps['color'];
    textDecoration?: StyledSystem.ResponsiveValue<React.CSSProperties['textDecoration']>;
    textTransform?: StyledSystem.ResponsiveValue<React.CSSProperties['textTransform']>;
    animation?: StyledSystem.ResponsiveValue<React.CSSProperties['animation']>;
    transform?: StyledSystem.ResponsiveValue<React.CSSProperties['transform']>;
    visibility?: StyledSystem.ResponsiveValue<React.CSSProperties['visibility']>;
    whiteSpace?: StyledSystem.ResponsiveValue<React.CSSProperties['whiteSpace']>;
    pointerEvents?: StyledSystem.ResponsiveValue<React.CSSProperties['pointerEvents']>;
    wordBreak?: StyledSystem.ResponsiveValue<React.CSSProperties['wordBreak']>;
    overflowWrap?: StyledSystem.ResponsiveValue<React.CSSProperties['overflowWrap']>;
    textOverflow?: StyledSystem.ResponsiveValue<React.CSSProperties['textOverflow']>;
    cursor?: StyledSystem.ResponsiveValue<React.CSSProperties['cursor']>;
    resize?: StyledSystem.ResponsiveValue<React.CSSProperties['resize']>;
    transition?: StyledSystem.ResponsiveValue<React.CSSProperties['transition']>;
    objectFit?: StyledSystem.ResponsiveValue<React.CSSProperties['objectFit']>;
    outline?: StyledSystem.ResponsiveValue<React.CSSProperties['outline']>;
    userSelect?: StyledSystem.ResponsiveValue<React.CSSProperties['userSelect']>;
    transformOrigin?: StyledSystem.ResponsiveValue<React.CSSProperties['transformOrigin']>;
    willChange?: StyledSystem.ResponsiveValue<React.CSSProperties['willChange']>;
    borderCollapse?: StyledSystem.ResponsiveValue<React.CSSProperties['borderCollapse']>;
    borderSpacing?: StyledSystem.ResponsiveValue<React.CSSProperties['borderSpacing']>;
    tableLayout?: StyledSystem.ResponsiveValue<React.CSSProperties['tableLayout']>;
}
export declare const customStyleProps: Record<keyof CustomStyleProps, boolean | StyledSystem.ConfigStyle>;
export declare type StylingProps = ThemedStyleProps & CustomStyleProps;
export declare const stylingProps: StyledSystem.styleFn;
export declare type SystemProps = StylingProps & RoutingProps & EmotionProps & PseudoProps & UtilityProps;
export {};
