export interface RestApiSubtype {
    code: string | number;
    name: string;
    defaultValues?: Record<string, unknown>;
    domains?: Record<string, RestApiDomain>;
}
export type RestApiDomain = RestApiRangeDomain | RestApiCodedValueDomain | {
    type: "inherited";
};
export interface RestApiRangeDomain {
    type: "range";
    name: string;
    range: [number, number];
}
export interface RestApiCodedValueDomain {
    type: "codedValue";
    name: string;
    codedValues: RestApiCodedValue[];
}
export interface RestApiCodedValue {
    name: string;
    code: number;
}
/**
 * Time Info returned from REST API Services.
 */
export interface RestApiServiceTimeInfo {
    /**
     * New in 10.1. The name of the attribute used as start time.
     */
    startTimeField: string;
    /**
     * New in 10.1. The name of the attribute used as end time.
     */
    endTimeField: string;
    /**
     * Added at 10.0. The time extent of the service (start/end), represented
     * using "Epoch time": milliseconds since 1970.
     */
    timeExtent: [number, number];
    /**
     * Added at 10.0. The time reference of the service.
     */
    timeReference: unknown;
}
/**
 * Time Info returned from REST API MapServices.
 */
export interface RestApiMapServiceTimeInfo extends RestApiServiceTimeInfo {
    timeExtent: [number, number];
    timeReference: {
        timeZone: string;
        respectsDaylightSaving: boolean;
    };
    timeRelation: "esriTimeRelationOverlaps" | "esriTimeRelationOverlapsStartWithinEnd" | "esriTimeRelationAfterStartOverlapsEnd>";
    defaultTimeIntervalUnits: "esriTimeUnitsCenturies" | "esriTimeUnitsDays" | "esriTimeUnitsDecades" | "esriTimeUnitsHours" | "esriTimeUnitsMilliseconds" | "esriTimeUnitsMinutes" | "esriTimeUnitsMonths" | "esriTimeUnitsSeconds" | "esriTimeUnitsWeeks" | "esriTimeUnitsYears" | "esriTimeUnitsUnknown";
    defaultTimeInterval: unknown;
    defaultTimeWindow: unknown;
    hasLiveData: boolean;
    liveModeOffsetDirection: "pastAndFuture" | "past" | "future";
}
