import { JSXSlack } from '../../jsx';
import { PrivateMetadataTransformer } from './utils';
interface HomeProps {
children: JSXSlack.ChildNodes;
/**
* An identifier for this view to recognize it in various events from Slack.
*/
callbackId?: string;
/** A unique ID for all views on a per-team basis. */
externalId?: string;
/**
* An optional metadata string for handling stored data in callback events
* from Slack API. (3000 characters maximum)
*
* If not defined, the home tab container will use values defined in
* `` as metadata stringified to JSON.
*
* ### Custom transformer
*
* You can also customize how to transform hidden values into string by
* passing the custom transformer function.
*
* @example
* ```jsx
* hidden && new URLSearchParams(hidden).toString()}
* >
*
*
*
*
* ```
*
* In this example, the private metadata would be `A=foobar&B=123&C=true` by
* transformation using `URLSearchParams`.
*
* The transformer takes an argument: JSON object of hidden values, or
* `undefined` when there was no hidden values. It must return the transformed
* string, or `undefined` if won't assign private metadata.
*/
privateMetadata?: string | PrivateMetadataTransformer;
}
/**
* The container component for the view of
* [home tabs](https://api.slack.com/surfaces/tabs).
*
* `` can include following block elements:
*
* - `` (``)
* - `` (``)
* - `` (``)
* - `` (``)
* - ``
* - ``
* - `` (``)
* - `