import { BuiltInComponent } from '../../jsx-internals';
import { DistributedProps } from '../../utils';
import { ConfirmableProps } from '../composition/Confirm';
import { InputComponentProps } from '../layout/Input';
import { ActionProps, AutoFocusibleProps, SingleSelectableProps, MultiSelectablePropsFrom, ResponsableUrlProps } from './utils';
interface SingleChannelsSelectProps extends ActionProps, AutoFocusibleProps, ConfirmableProps, SingleSelectableProps {
    children?: never;
    /** A string of ID for the initially selected public channel. */
    initialChannel?: string;
    /** The placeholder text shown in select field. */
    placeholder?: string;
    /** An alias into `initialChannel` prop. */
    value?: string;
}
interface MultiChannelsSelectProps extends MultiSelectablePropsFrom<SingleChannelsSelectProps, 'initialChannel' | 'value'> {
    /** In multiple select, you can set multiple channel IDs through array. */
    initialChannel?: string | string[];
    value?: string | string[];
}
export type ChannelsSelectProps = DistributedProps<InputComponentProps<SingleChannelsSelectProps, ResponsableUrlProps> | InputComponentProps<MultiChannelsSelectProps>>;
/**
 * The interactive component or input component for
 * [the `channels_select` element](https://api.slack.com/reference/block-kit/block-elements#channel_select) and
 * [the `multi_channels_select` element](https://api.slack.com/reference/block-kit/block-elements#channel_multi_select).
 *
 * Provide a selectable menu element from a list of _public_ channels visible to
 * the current user in the active workspace.
 *
 * @return The partial JSON of a block element for selecting from channels, or
 *   `input` layout block with it
 */
export declare const ChannelsSelect: BuiltInComponent<ChannelsSelectProps>;
export {};
