export interface MapperBase {
    selector: string;
    type: string;
    required?: boolean;
}
export interface ValueMapper extends MapperBase {
    type: 'string' | 'number' | 'boolean';
}
export interface SimpleArrayMapper extends MapperBase {
    type: 'simple-array';
    itemType: 'string' | 'number' | 'boolean';
}
export interface ArrayMapper extends MapperBase {
    type: 'array';
    items: MessageMapper;
}
export interface UnknownMapper extends MapperBase {
    type: 'unknown';
}
export type MessageMapper = {
    [key: string]: ValueMapper | SimpleArrayMapper | ArrayMapper | UnknownMapper;
};
export interface ConditionMapper {
    selector: string;
    [key: string]: string | {
        id: string;
        value: string;
    };
}
export interface ValidationMapper {
    selector: string;
    custom_failure_message?: string;
}
export type NodeMapper = MessageMapper | ConditionMapper | ValidationMapper | object;
