import { PartialTheme, Theme } from '@fluentui/react';
import { ParticipantMenuItemsCallback } from "../../../../react-components/src";
import React from 'react';
import { CompositeLocale } from '../localization';
import { AvatarPersonaDataCallback } from './AvatarPersona';
import { CallCompositeIcons, CallWithChatCompositeIcons, ChatCompositeIcons } from './icons';
/**
 * Properties common to all composites exported from this library.
 *
 * @public
 */
export interface BaseCompositeProps<TIcons extends Record<string, JSX.Element>> {
    /**
     * Fluent theme for the composite.
     *
     * @defaultValue light theme
     */
    fluentTheme?: PartialTheme | Theme;
    /**
     * Custom Icon override for the composite.
     * A JSX element can be provided to override the default icon.
     */
    icons?: TIcons;
    /**
     * Locale for the composite.
     *
     * @defaultValue English (US)
     */
    locale?: CompositeLocale;
    /**
     * Whether composite is displayed right-to-left.
     *
     * @defaultValue false
     */
    rtl?: boolean;
    /**
     * A callback function that can be used to provide custom data to Avatars rendered
     * in Composite.
     *
     * This will not affect the displayName shown in the composite.
     * The displayName throughout the composite will be what is provided to the adapter when the adapter is created.
     * will be what is provided to the adapter when the adapter is created.
     */
    onFetchAvatarPersonaData?: AvatarPersonaDataCallback;
    /**
     * A callback function that can be used to provide custom menu items for a participant in
     * participant list.
     */
    onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;
}
/**
 * A base provider {@link React.Context} to wrap components with other required providers
 * (e.g. icons, FluentThemeProvider, LocalizationProvider).
 *
 * Required providers are only wrapped once, with all other instances only passing children.
 *
 * @private
 */
export declare const BaseProvider: (props: BaseCompositeProps<CallCompositeIcons | ChatCompositeIcons | CallWithChatCompositeIcons> & {
    children: React.ReactNode;
    formFactor?: 'desktop' | 'mobile';
}) => JSX.Element;
//# sourceMappingURL=BaseComposite.d.ts.map