/// <reference types="react" />
/**
 * A react layout template component factory function signature
 */
export declare type LayoutFactory = (() => JSX.Element);
/**
 * Capabilities of a viewer layout template
 *
 * @since 0.14
 */
export declare type LayoutCapabilities = {
    /**
     * Indicates if this viewer layout template has a task pane
     */
    readonly hasTaskPane: boolean;
};
/**
 * Gets the capabilities of the given layout template
 *
 * @param name
 * @returns
 * @since 0.14
 */
export declare function getLayoutCapabilities(name: string): LayoutCapabilities | undefined;
/**
 * Register the given react layout template component factory function for the given
 * template name
 *
 * @export
 * @param {string} name
 * @param {LayoutFactory} factory
 * @param caps The capabilities of this template
 * @since 0.14
 */
export declare function registerLayout(name: string, factory: LayoutFactory, caps: LayoutCapabilities): void;
/**
 * Gets the registerd react layout template component factory function for the given
 * template name
 *
 * @export
 * @param {string} name
 * @returns {LayoutFactory}
 */
export declare function getLayout(name: string): LayoutFactory;
