/// import * as React from 'react'; import Fill from './Fill'; import Manager, { Component } from '../Manager'; import { Requireable } from 'prop-types'; export interface Props { /** * The name of the component. Use a symbol if you want to be 100% sue the Slot * will only be filled by a component you create */ name: string | Symbol; /** * Props to be applied to the child Element of every fill which has the same name. * * If the value is a function, it must have the following signature: * (target: Fill, fills: Fill[]) => void; * * This allows you to access props on the fill which invoked the function * by using target.props.something() */ fillChildProps?: { [key: string]: any; }; } export interface State { components: Component[]; } export interface Context { manager: Manager; } export default class Slot extends React.Component { static contextTypes: { manager: Requireable; }; context: Context; constructor(props: Props); componentWillMount(): void; handleComponentChange(components: Component[]): void; readonly fills: Fill[]; componentWillReceiveProps(nextProps: Props): void; componentWillUnmount(): void; render(): any; }