import type { FormikErrors, FormikProps } from 'formik';
import React from 'react';
import type { Application } from '../../../application';
import type { IPipeline, IStage, ITrigger } from '../../../domain';
export interface IFormikStageConfigInjectedProps {
    application: Application;
    pipeline: IPipeline;
    formik: FormikProps<IStage>;
}
export declare type IContextualValidator = (values: IStage | ITrigger, context: any) => FormikErrors<IStage> | Promise<FormikErrors<IStage>>;
export interface IFormikStageConfigProps {
    application: Application;
    stage: IStage;
    pipeline: IPipeline;
    validate?: IContextualValidator;
    render: (props: IFormikStageConfigInjectedProps) => React.ReactNode;
    onChange?: (values: IStage) => void;
}
export declare type IStageValidator = (values: IStage) => void | object | Promise<FormikErrors<IStage>>;
export declare class FormikStageConfig extends React.Component<IFormikStageConfigProps> {
    render(): JSX.Element;
}
