import { ComponentWithAs, ComposePreparedOptions, ShorthandConfig } from '@fluentui/react-bindings';
import * as React from 'react';
import { ShorthandValue, Props, PropsOf, ShorthandRenderFunction } from '../types';
interface CreateShorthandOptions
{
/** Default props object */
defaultProps?: () => Partial>;
/** Override props object or function (called with regular props) */
overrideProps?: Partial> | ((props: P) => Partial>);
/** Whether or not automatic key generation is allowed */
generateKey?: boolean;
/** Override the default render implementation. */
render?: ShorthandRenderFunction;
}
export declare type ShorthandFactory
= (value: ShorthandValue
, options?: CreateShorthandOptions
) => React.ReactElement | null | undefined;
/**
* @param config - Options passed to factory
* @returns A shorthand factory function waiting for `val` and `defaultProps`.
*/
export declare function createShorthandFactory(config: {
/** A ReactClass or string */
Component: TStringElement;
/** A function that maps a primitive value to the Component props */
mappedProp?: keyof PropsOf;
/** A function that maps an array value to the Component props */
mappedArrayProp?: keyof PropsOf;
/** Indicates if factory supports React Elements */
allowsJSX?: boolean;
}): ShorthandFactory;
export declare function createShorthandFactory(config: {
Component: TFunctionComponent;
mappedProp?: keyof PropsOf;
mappedArrayProp?: keyof PropsOf;
allowsJSX?: boolean;
}): ShorthandFactory;
export declare function createShorthandFactory(config: {
Component: {
new (...args: any[]): TInstance;
};
mappedProp?: keyof PropsOf;
mappedArrayProp?: keyof PropsOf;
allowsJSX?: boolean;
}): ShorthandFactory;
export declare function createShorthandInternal
({ Component, mappedProp, mappedArrayProp, value, options, allowsJSX, }: {
Component: React.ElementType
;
mappedProp?: string;
mappedArrayProp?: string;
allowsJSX?: boolean;
value?: ShorthandValue
;
options?: CreateShorthandOptions
;
}): any;
export declare function createShorthand(Component: TFunctionComponent & {
shorthandConfig?: ShorthandConfig>;
fluentComposeConfig?: ComposePreparedOptions>;
}, value?: ShorthandValue>, options?: CreateShorthandOptions>): React.ReactElement;
export declare function createShorthand(Component: {
new (...args: any[]): TInstance;
} & {
shorthandConfig?: ShorthandConfig>;
fluentComposeConfig?: ComposePreparedOptions>;
}, value?: ShorthandValue>, options?: CreateShorthandOptions>): React.ReactElement;
export declare function createShorthand(Component: ComponentWithAs & {
shorthandConfig?: ShorthandConfig;
fluentComposeConfig?: ComposePreparedOptions
;
}, value?: ShorthandValue
, options?: CreateShorthandOptions
): React.ReactElement;
export declare function createShorthand(Component: TElementType & {
shorthandConfig?: ShorthandConfig>;
fluentComposeConfig?: ComposePreparedOptions>;
}, value?: ShorthandValue>, options?: CreateShorthandOptions>): React.ReactElement;
export {};