import type { IStageOrTriggerValidator, IValidatorConfig } from './PipelineConfigValidator';
import type { IPipeline, IStage, IStageOrTriggerTypeConfig, ITrigger } from '../../../domain';
export interface IRequiredField {
    fieldName: string;
    fieldLabel?: string;
}
export interface IBaseRequiredFieldValidationConfig extends IValidatorConfig {
    message?: string;
}
export declare abstract class BaseRequiredFieldValidator implements IStageOrTriggerValidator {
    validate(pipeline: IPipeline, stage: IStage | ITrigger, validationConfig: IBaseRequiredFieldValidationConfig, config: IStageOrTriggerTypeConfig): string;
    protected abstract passesValidation(pipeline: IPipeline, stage: IStage | ITrigger, validationConfig: IBaseRequiredFieldValidationConfig): boolean;
    protected abstract validationMessage(validationConfig: IBaseRequiredFieldValidationConfig, config: IStageOrTriggerTypeConfig): string;
    protected printableFieldLabel(field: IRequiredField): string;
    protected fieldIsValid(pipeline: IPipeline, stage: IStage | ITrigger, fieldName: string): boolean;
}
