/** * @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 { CustomSchemaType, SchemaType, ThemeStyleType } from '@eva-design/dss'; import { ThemeProviderProps } from '../theme/themeProvider.component'; interface EvaRuntimeProcessingProps { mapping: SchemaType; customMapping?: CustomSchemaType; } interface EvaBuildtimeProcessingProps { styles: ThemeStyleType; } declare type EvaProcessingProps = EvaRuntimeProcessingProps | EvaBuildtimeProcessingProps; export declare type ApplicationProviderProps = EvaProcessingProps & ThemeProviderProps; export declare type ApplicationProviderElement = React.ReactElement; interface State { styles: ThemeStyleType; } /** * `ApplicationProvider` component is designed to be a root of the application. * * This does basically two things: * - Provides styles for basic components; * - Renders modal window which is used to be common for all elements presented as modal; * * @extends React.Component * * @property {SchemaType} mapping - Determines the mapping for basic components. * This is designed to be provided from any `@eva-design/*` package (e.g. `@eva-design/eva`) * If provided, will be merged with customMapping to bootstrap eva during the runtime. * * @property {CustomSchemaType} customMapping - Determines the customized mapping. * This is merged with `mapping` property and designed to be used components customization. * * @property {ThemeType} theme - Determines the theme for basic components. * This is designed to be provided by developers team and can be imported from npm package (e.g. `@eva-design/eva`). * * @property {ThemeStyleType} styles - Determines the styles compiled by bootstrapping eva. * If provided, will replace runtime styles calculation. * Should be used with `@ui-kitten/metro-config` package. * * @property {ReactNode} children - Determines application root component. * * @overview-example Simple Usage * * ``` * import React from 'react'; * import { ApplicationProvider, Layout, Text } from '../..'; * import * as eva from '@eva-design/eva'; * * export default () => ( * * * Welcome to UI Kitten * * * ); * ``` */ export declare class ApplicationProvider extends React.Component { state: State; private schemaProcessor; constructor(props: ApplicationProviderProps); private createStyles; render(): React.ReactNode; } export {};