/** * @license * Copyright Akveo. All Rights Reserved. * Licensed under the MIT License. See License.txt in the project root for license information. */ import React from 'react'; import { Interaction, StyleType } from './style.service'; import { ThemeType } from '../theme/theme.service'; export interface StyledComponentProps { appearance?: string; theme?: ThemeType; themedStyle?: StyleType; dispatch?: (interaction: Interaction[]) => void; } export declare type StyledComponentClass

= React.ComponentClass; /** * `styled` is a High Order Function which is used to apply style mapping on component. * * Requires component to have `styledComponentName` string property which defines * corresponding component name in mapping. (e.g 'Button' for Button component). * Returns component class which can be used as styled component. * * @property {string} appearance - Determines style appearance of component. Default is provided by mapping. * * @property {ThemeType} theme - Determines theme used to style component. * * @property {StyleType} themedStyle - Determines component style for it's current state. * * @property {(interaction: Interaction[]) => void} dispatch - Determines function * for dispatching current state of component. This is designed to be used as style request function. * Calls component re-render if style for requested state differ from current. * * @param Component - Type: {ComponentType}. Determines class or functional component to be styled. * * @overview-example StyledComponentSimpleUsage * * @overview-example StyledComponentStates * * @overview-example StyledComponentVariants */ export declare const styled:

(Component: React.ComponentType

) => StyledComponentClass

;