///
import { estypes } from "@elastic/elasticsearch";
export type MappingToDocument = Property extends estypes.MappingAggregateMetricDoubleProperty ? {
[metric in Property["metrics"][number]]: number;
} : Property extends estypes.MappingBinaryProperty ? Buffer : Property extends estypes.MappingBooleanProperty ? boolean : Property extends estypes.MappingByteNumberProperty ? estypes.byte : Property extends estypes.MappingCompletionProperty ? string : Property extends estypes.MappingConstantKeywordProperty ? Property["value"] : Property extends estypes.MappingDateNanosProperty ? estypes.DateTime : Property extends estypes.MappingDateProperty ? estypes.DateTime : Property extends estypes.MappingDateRangeProperty ? RangeProperty : Property extends estypes.MappingDenseVectorProperty ? DenseVector : Property extends estypes.MappingDoubleNumberProperty ? estypes.double : Property extends estypes.MappingDoubleRangeProperty ? RangeProperty : Property extends estypes.MappingDynamicProperty ? any : Property extends estypes.MappingFieldAliasProperty ? never : Property extends estypes.MappingFlattenedProperty ? MappingPropertiesToJS : Property extends estypes.MappingFloatNumberProperty ? estypes.float : Property extends estypes.MappingFloatRangeProperty ? RangeProperty : Property extends estypes.MappingGeoPointProperty ? GeoPointValue : Property extends estypes.MappingGeoShapeProperty ? GeoShapeValue : Property extends estypes.MappingHalfFloatNumberProperty ? estypes.float : Property extends estypes.MappingHistogramProperty ? Histogram : Property extends estypes.MappingIntegerNumberProperty ? number : Property extends estypes.MappingIntegerRangeProperty ? RangeProperty : Property extends estypes.MappingIpProperty ? estypes.Ip : Property extends estypes.MappingIpRangeProperty ? RangeProperty : Property extends estypes.MappingJoinProperty ? any : Property extends estypes.MappingKeywordProperty ? string : Property extends estypes.MappingLongNumberProperty ? estypes.long : Property extends estypes.MappingLongRangeProperty ? RangeProperty : Property extends estypes.MappingMatchOnlyTextProperty ? string : Property extends estypes.MappingMurmur3HashProperty ? string : Property extends estypes.MappingNestedProperty ? MappingPropertiesToJS : Property extends estypes.MappingObjectProperty ? MappingPropertiesToJS : Property extends estypes.MappingPercolatorProperty ? any : Property extends estypes.MappingPointProperty ? PointValue : Property extends estypes.MappingRankFeatureProperty ? number : Property extends estypes.MappingRankFeaturesProperty ? {
[feature: string]: number;
} : Property extends estypes.MappingScaledFloatNumberProperty ? estypes.double : Property extends estypes.MappingSearchAsYouTypeProperty ? string : Property extends estypes.MappingShapeProperty ? GeoShapeValue : Property extends estypes.MappingShortNumberProperty ? number : Property extends estypes.MappingTextProperty ? string : Property extends estypes.MappingTokenCountProperty ? string : Property extends estypes.MappingUnsignedLongNumberProperty ? string : Property extends estypes.MappingVersionProperty ? string : Property extends estypes.MappingWildcardProperty ? string : any;
type RangeProperty = {
gte?: T;
gt?: T;
lt?: T;
lte?: T;
};
type DenseVectorElement = number | bigint;
type DenseVector = DenseVectorElement[];
interface MappingProperties {
[propertyName: string]: estypes.MappingProperty;
}
type MappingPropertiesToJS = Properties extends undefined ? any : {
[property in keyof Properties]: MappingToDocument[property]>;
};
type PointTupleValue = [x: number, y: number];
export type PointValue = PointTupleValue | GeoJson.Point | {
x: number;
y: number;
} | {
type: "Point";
coordinates: [x: number, y: number];
} | `POINT (${number} ${number})` | `${number},${number}`;
export type GeoPointValue = {
lat: number;
lon: number;
} | PointValue | string;
declare namespace GeoJson {
interface Point {
type: "Point";
coordinates: [x: number, y: number];
}
interface LineString {
type: "LineString";
coordinates: [PointTupleValue, PointTupleValue];
}
interface Polygon {
type: "Polygon";
coordinates: PointTupleValue[];
}
interface MultiPoint {
type: "MultiPoint";
coordinates: PointTupleValue[];
}
interface MultiLineString {
type: "MultiLineString";
coordinates: LineString["coordinates"][];
}
interface MultiPolygon {
type: "MultiPolygon";
coordinates: Polygon["coordinates"][];
}
interface GeometryCollection {
type: "GeometryCollection";
geometries: Exclude[];
}
}
export type GeoShapeValue = GeoJson.GeometryCollection | GeoJson.LineString | GeoJson.MultiLineString | GeoJson.MultiPoint | GeoJson.MultiPolygon | GeoJson.Point | GeoJson.Polygon;
interface Histogram {
values: number;
counts: number;
}
export {};
//# sourceMappingURL=mapping.d.ts.map