import type { JSXSlack } from './jsx'; export interface BuiltInComponent
extends JSXSlack.FC
{
readonly $$jsxslackComponent: {
name: string;
} & Record (type: JSXSlack.FC | keyof JSXSlack.JSX.IntrinsicElements, props?: P | null, ...children: JSXSlack.ChildElement[]) => JSXSlack.JSX.Element | null;
/**
* Create the component for JSON payload building with jsx-slack.
*
* The passed functional component has to return JSON object or `null`, to build
* JSON payload for Slack. Unlike a simple functional component defined by
* JavaScript function, the output would be always preserved in JSON even if it
* was an array.
*
* @remarks
* `createComponent()` is an internal helper to create built-in components for
* jsx-slack. Typically user must use a simple function definition of JavaScript
* to create the functional component.
*
* @param name - Component name for showing in debug log
* @param component - The functional component to turn into jsx-slack component
* @param meta - An optional metadata for jsx-slack component
* @return A created jsx-slack component
*/
export declare const createComponent: (name: string, component: (props: P) => O | null, meta?: Record ;
export declare const FragmentInternal: BuiltInComponent<{
children: JSXSlack.ChildElements;
}>;
/**
* Verify the passed function is a jsx-slack component.
*
* @param fn - A function to verify
* @return `true` if the passed object was a jsx-slack component, otherwise
* `false`.
*/
export declare const isValidComponent: