// flow-typed signature: 291855e84801d873d854919a58e86373
// flow-typed version: <<STUB>>/react-ui-validations_v0.0.0/flow_v0.90.0

/**
 * This is an autogenerated libdef stub for:
 *
 *   'react-ui-validations'
 *
 * Fill this stub out by replacing all the `any` types.
 *
 * Once filled out, we encourage you to share your work with the
 * community by sending a pull request to:
 * https://github.com/flowtype/flow-typed
 */

declare module "react-ui-validations" {
    declare export type ValidationInfo = {
        message: string | React$Node,
        level?: "error" | "warning",
        type?: "submit" | "lostfocus" | "immediate",
    };

    declare type ValidationContainerProps = {|
        "data-tid"?: string,
        children?: any,
    |};

    declare export class ValidationContainer extends React$Component<ValidationContainerProps> {
        validate(): Promise<boolean>;
        submit(withoutScroll?: boolean): Promise<void>;
    }

    declare type ValidationTooltipProps = {|
        "data-tid"?: string,
        error: boolean,
        pos: TooltipPosition,
        render: () => ?React$Node | ?string,
        children?: any,
    |};

    declare export class ValidationTooltip extends React$Component<ValidationTooltipProps> {}

    declare type ValidationTooltipContextProps = {|
        "data-tid"?: string,
        children?: any,
    |};

    declare export class ValidationTooltipContext extends React$Component<ValidationTooltipContextProps> {
        validate(): Promise<boolean>;
        submit(): Promise<void>;
    }

    declare type ValidationMessageRenderer = (
        control: React$Node,
        hasError: boolean,
        validation: ValidationInfo
    ) => React$Node;

    declare type TooltipPosition =
        | "top left"
        | "top center"
        | "top right"
        | "bottom left"
        | "bottom center"
        | "bottom right"
        | "left top"
        | "left middle"
        | "left bottom"
        | "right top"
        | "right middle"
        | "right bottom";

    declare export function text(position: "right" | "bottom"): ValidationMessageRenderer;
    declare export function tooltip(position: TooltipPosition): ValidationMessageRenderer;

    declare type ValidationWrapperV1Props = {|
        "data-tid"?: string,
        validationInfo: ?ValidationInfo,
        renderMessage?: ValidationMessageRenderer,
        children?: any,
    |};

    declare export class ValidationWrapperV1 extends React$Component<ValidationWrapperV1Props> {}
}

Add types for react-ui-validation package
Add types for react-ui-validation package
