import { FlexibleConversionModel } from "../../QueryObjectModel";
import { QParamModel } from "../QParamModel";
export declare abstract class BaseEnumParam<EnumParam> implements QParamModel<string, EnumParam> {
    protected name: string;
    protected mappedName?: string | undefined;
    constructor(name: string, mappedName?: string | undefined);
    protected abstract mapValue(value: string): EnumParam;
    protected abstract mapValueBack(value: EnumParam): string;
    getName(): string;
    getMappedName(): string;
    convertFrom(value: FlexibleConversionModel<string>): FlexibleConversionModel<EnumParam>;
    convertTo(value: FlexibleConversionModel<EnumParam>): FlexibleConversionModel<string>;
    formatUrlValue(value: FlexibleConversionModel<EnumParam>): string | undefined;
    parseUrlValue(value: string | undefined): FlexibleConversionModel<EnumParam>;
}
