/// <reference types="node" />
import _m0 from "protobufjs/minimal.js";
import { Common_1 } from "../common/v1.js";
export declare const protobufPackage = "mapeo";
export interface Observation_5 {
    common?: Common_1;
    lat?: number | undefined;
    lon?: number | undefined;
    refs: {
        [key: string]: any;
    }[];
    attachments: {
        [key: string]: any;
    }[];
    tags?: {
        [key: string]: any;
    };
    metadata?: Observation_5_Metadata | undefined;
}
export interface Observation_5_Metadata {
    location?: Observation_5_Metadata_Location | undefined;
    manual_location?: boolean | undefined;
}
export interface Observation_5_Metadata_Location {
    precision?: number | undefined;
    altitude?: number | undefined;
}
export declare const Observation_5: {
    encode(message: Observation_5, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Observation_5;
    fromJSON(object: any): Observation_5;
    toJSON(message: Observation_5): unknown;
    create<I extends {
        common?: {
            created_at?: Date;
            deviceId?: string;
            id?: Buffer;
            links?: string[];
            timestamp?: Date;
            userId?: string;
        };
        lat?: number | undefined;
        lon?: number | undefined;
        refs?: {
            [x: string]: any;
        }[];
        attachments?: {
            [x: string]: any;
        }[];
        tags?: {
            [x: string]: any;
        };
        metadata?: {
            location?: {
                precision?: number | undefined;
                altitude?: number | undefined;
            };
            manual_location?: boolean | undefined;
        };
    } & {
        common?: {
            created_at?: Date;
            deviceId?: string;
            id?: Buffer;
            links?: string[];
            timestamp?: Date;
            userId?: string;
        } & {
            created_at?: Date;
            deviceId?: string;
            id?: Buffer;
            links?: string[] & string[] & { [K in Exclude<keyof I["common"]["links"], keyof string[]>]: never; };
            timestamp?: Date;
            userId?: string;
        } & { [K_1 in Exclude<keyof I["common"], keyof Common_1>]: never; };
        lat?: number | undefined;
        lon?: number | undefined;
        refs?: {
            [x: string]: any;
        }[] & ({
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_2 in Exclude<keyof I["refs"][number], string | number>]: never; })[] & { [K_3 in Exclude<keyof I["refs"], keyof {
            [x: string]: any;
        }[]>]: never; };
        attachments?: {
            [x: string]: any;
        }[] & ({
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_4 in Exclude<keyof I["attachments"][number], string | number>]: never; })[] & { [K_5 in Exclude<keyof I["attachments"], keyof {
            [x: string]: any;
        }[]>]: never; };
        tags?: {
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_6 in Exclude<keyof I["tags"], string | number>]: never; };
        metadata?: {
            location?: {
                precision?: number | undefined;
                altitude?: number | undefined;
            };
            manual_location?: boolean | undefined;
        } & {
            location?: {
                precision?: number | undefined;
                altitude?: number | undefined;
            } & {
                precision?: number | undefined;
                altitude?: number | undefined;
            } & { [K_7 in Exclude<keyof I["metadata"]["location"], keyof Observation_5_Metadata_Location>]: never; };
            manual_location?: boolean | undefined;
        } & { [K_8 in Exclude<keyof I["metadata"], keyof Observation_5_Metadata>]: never; };
    } & { [K_9 in Exclude<keyof I, keyof Observation_5>]: never; }>(base?: I): Observation_5;
    fromPartial<I_1 extends {
        common?: {
            created_at?: Date;
            deviceId?: string;
            id?: Buffer;
            links?: string[];
            timestamp?: Date;
            userId?: string;
        };
        lat?: number | undefined;
        lon?: number | undefined;
        refs?: {
            [x: string]: any;
        }[];
        attachments?: {
            [x: string]: any;
        }[];
        tags?: {
            [x: string]: any;
        };
        metadata?: {
            location?: {
                precision?: number | undefined;
                altitude?: number | undefined;
            };
            manual_location?: boolean | undefined;
        };
    } & {
        common?: {
            created_at?: Date;
            deviceId?: string;
            id?: Buffer;
            links?: string[];
            timestamp?: Date;
            userId?: string;
        } & {
            created_at?: Date;
            deviceId?: string;
            id?: Buffer;
            links?: string[] & string[] & { [K_10 in Exclude<keyof I_1["common"]["links"], keyof string[]>]: never; };
            timestamp?: Date;
            userId?: string;
        } & { [K_11 in Exclude<keyof I_1["common"], keyof Common_1>]: never; };
        lat?: number | undefined;
        lon?: number | undefined;
        refs?: {
            [x: string]: any;
        }[] & ({
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_12 in Exclude<keyof I_1["refs"][number], string | number>]: never; })[] & { [K_13 in Exclude<keyof I_1["refs"], keyof {
            [x: string]: any;
        }[]>]: never; };
        attachments?: {
            [x: string]: any;
        }[] & ({
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_14 in Exclude<keyof I_1["attachments"][number], string | number>]: never; })[] & { [K_15 in Exclude<keyof I_1["attachments"], keyof {
            [x: string]: any;
        }[]>]: never; };
        tags?: {
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_16 in Exclude<keyof I_1["tags"], string | number>]: never; };
        metadata?: {
            location?: {
                precision?: number | undefined;
                altitude?: number | undefined;
            };
            manual_location?: boolean | undefined;
        } & {
            location?: {
                precision?: number | undefined;
                altitude?: number | undefined;
            } & {
                precision?: number | undefined;
                altitude?: number | undefined;
            } & { [K_17 in Exclude<keyof I_1["metadata"]["location"], keyof Observation_5_Metadata_Location>]: never; };
            manual_location?: boolean | undefined;
        } & { [K_18 in Exclude<keyof I_1["metadata"], keyof Observation_5_Metadata>]: never; };
    } & { [K_19 in Exclude<keyof I_1, keyof Observation_5>]: never; }>(object: I_1): Observation_5;
};
export declare const Observation_5_Metadata: {
    encode(message: Observation_5_Metadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Observation_5_Metadata;
    fromJSON(object: any): Observation_5_Metadata;
    toJSON(message: Observation_5_Metadata): unknown;
    create<I extends {
        location?: {
            precision?: number | undefined;
            altitude?: number | undefined;
        };
        manual_location?: boolean | undefined;
    } & {
        location?: {
            precision?: number | undefined;
            altitude?: number | undefined;
        } & {
            precision?: number | undefined;
            altitude?: number | undefined;
        } & { [K in Exclude<keyof I["location"], keyof Observation_5_Metadata_Location>]: never; };
        manual_location?: boolean | undefined;
    } & { [K_1 in Exclude<keyof I, keyof Observation_5_Metadata>]: never; }>(base?: I): Observation_5_Metadata;
    fromPartial<I_1 extends {
        location?: {
            precision?: number | undefined;
            altitude?: number | undefined;
        };
        manual_location?: boolean | undefined;
    } & {
        location?: {
            precision?: number | undefined;
            altitude?: number | undefined;
        } & {
            precision?: number | undefined;
            altitude?: number | undefined;
        } & { [K_2 in Exclude<keyof I_1["location"], keyof Observation_5_Metadata_Location>]: never; };
        manual_location?: boolean | undefined;
    } & { [K_3 in Exclude<keyof I_1, keyof Observation_5_Metadata>]: never; }>(object: I_1): Observation_5_Metadata;
};
export declare const Observation_5_Metadata_Location: {
    encode(message: Observation_5_Metadata_Location, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Observation_5_Metadata_Location;
    fromJSON(object: any): Observation_5_Metadata_Location;
    toJSON(message: Observation_5_Metadata_Location): unknown;
    create<I extends {
        precision?: number | undefined;
        altitude?: number | undefined;
    } & {
        precision?: number | undefined;
        altitude?: number | undefined;
    } & { [K in Exclude<keyof I, keyof Observation_5_Metadata_Location>]: never; }>(base?: I): Observation_5_Metadata_Location;
    fromPartial<I_1 extends {
        precision?: number | undefined;
        altitude?: number | undefined;
    } & {
        precision?: number | undefined;
        altitude?: number | undefined;
    } & { [K_1 in Exclude<keyof I_1, keyof Observation_5_Metadata_Location>]: never; }>(object: I_1): Observation_5_Metadata_Location;
};
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
export declare type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export {};
