import React from 'react';
import SplitPosition from './SplitPosition';
export interface InjectorOptions {
    /** Eliminate padding/margins around outer content */
    maximized?: boolean;
    /** Use inverse colors in the split? */
    inverseColors?: boolean;
    /**
     * Force this new split to have (or not) an active input,
     * independent of what the default behavior would otherwis
     * say?
     */
    hasActiveInput?: boolean;
}
export type SplitSpec = {
    uuid: string;
    node: React.ReactNode;
    position: SplitPosition;
    count: number;
    opts?: InjectorOptions;
};
/**
 * Inject the given React `node` in the given `SplitPosition`. Use the
 * given `uuid` to determine whether we have already injected this
 * content or not.
 *
 */
type Injector = (splits: SplitSpec[]) => void;
/** Update the properties of an existing split */
type Modifier = (
/** id of split to modify */
uuid: string, 
/** The actual content */
node: React.ReactNode, 
/** Modification options */
opts: InjectorOptions) => React.ReactNode;
export interface InjectProvider {
    inject: Injector;
    modify: Modifier;
}
declare const _default: React.Context<InjectProvider>;
export default _default;
