import { ListResult } from '../list_result';
import { RequestWrapper } from "../request_wrapper";
import { Model } from "./model";
import { filter } from "../filter";
export declare class Feature extends Model {
    id: string;
    name: string;
    description?: string;
    status?: string;
    type?: string;
    unit?: string;
    resource_version?: number;
    updated_at?: number;
    created_at: number;
    levels?: Array<Level>;
    static list(params?: _feature.feature_list_params): RequestWrapper<ListResult>;
    static create(params?: _feature.create_params): RequestWrapper;
    static update(feature_id: string, params?: _feature.update_params): RequestWrapper;
    static retrieve(feature_id: string, params?: any): RequestWrapper;
    static delete(feature_id: string, params?: any): RequestWrapper;
    static activate(feature_id: string, params?: any): RequestWrapper;
    static archive(feature_id: string, params?: any): RequestWrapper;
    static reactivate(feature_id: string, params?: any): RequestWrapper;
}
export declare class Level extends Model {
    name?: string;
    value: string;
    level: number;
    is_unlimited: boolean;
}
export declare namespace _feature {
    interface feature_list_params {
        limit?: number;
        offset?: string;
        name?: filter._string;
        id?: filter._string;
        status?: filter._enum;
        type?: filter._enum;
    }
    interface create_params {
        id?: string;
        name: string;
        description?: string;
        type?: string;
        unit?: string;
        levels?: Array<levels_create_params>;
    }
    interface update_params {
        name?: string;
        description?: string;
        unit?: string;
        levels?: Array<levels_update_params>;
    }
    interface levels_create_params {
        name?: string;
    }
    interface levels_create_params {
        value?: string;
    }
    interface levels_create_params {
        is_unlimited?: boolean;
    }
    interface levels_create_params {
        level?: number;
    }
    interface levels_update_params {
        name?: string;
    }
    interface levels_update_params {
        value?: string;
    }
    interface levels_update_params {
        is_unlimited?: boolean;
    }
    interface levels_update_params {
        level?: number;
    }
}
