import { MapCultureTo } from "../../../base-types";
import { IOptionList, ITypedOptionList } from "./option-list";
import { OptionListType } from "./option-list-type";
import { IOptionListValue } from "./option-list-value";
export declare abstract class OptionListBase implements IOptionList {
    name: string;
    labels: MapCultureTo<string>;
    isSystemOwned: boolean;
    createdBy?: number;
    createdOn?: Date;
    modifiedBy?: number;
    modifiedOn?: Date;
    abstract type: OptionListType;
    constructor(name: string, labels?: MapCultureTo<string>);
    abstract getOptionListValues(): Array<IOptionListValue>;
    abstract setOptionListValues(values: Array<IOptionListValue>): void;
}
export declare abstract class TypedOptionListBase<T extends IOptionListValue = IOptionListValue> extends OptionListBase implements ITypedOptionList<T> {
    values: Array<T>;
    constructor(name: string, labels?: MapCultureTo<string>, values?: Array<T>);
    getOptionListValues(): Array<T>;
    setOptionListValues(values: Array<T>): void;
}
