/// <reference types="node" />
import _m0 from "protobufjs/minimal.js";
export declare const protobufPackage = "mapeo";
export interface Observation_4 {
    id: Buffer;
    created_at?: Date;
    timestamp?: Date | undefined;
    userId?: string | undefined;
    deviceId?: string | undefined;
    links: string[];
    lat?: number | undefined;
    lon?: number | undefined;
    refs: {
        [key: string]: any;
    }[];
    attachments: {
        [key: string]: any;
    }[];
    tags?: {
        [key: string]: any;
    };
    metadata?: Observation_4_Metadata | undefined;
}
export interface Observation_4_Metadata {
    manual_location?: boolean | undefined;
    position?: Observation_4_Metadata_Position | undefined;
    lastSavedPosition?: Observation_4_Metadata_Position | undefined;
    positionProvider?: Observation_4_Metadata_PositionProvider | undefined;
}
export interface Observation_4_Metadata_Position {
    timestamp: number;
    mocked: boolean;
    coords?: Observation_4_Metadata_Position_Coords | undefined;
}
export interface Observation_4_Metadata_Position_Coords {
    altitude: number;
    heading: number;
    longitude: number;
    latitude: number;
    speed: number;
    acurracy: number;
}
export interface Observation_4_Metadata_PositionProvider {
    gpsAvailable: boolean;
    passiveAvailable: boolean;
    locationServicesEnabled: boolean;
    networkAvailable: boolean;
}
export declare const Observation_4: {
    encode(message: Observation_4, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Observation_4;
    fromJSON(object: any): Observation_4;
    toJSON(message: Observation_4): unknown;
    create<I extends {
        id?: Buffer;
        created_at?: Date;
        timestamp?: Date | undefined;
        userId?: string | undefined;
        deviceId?: string | undefined;
        links?: string[];
        lat?: number | undefined;
        lon?: number | undefined;
        refs?: {
            [x: string]: any;
        }[];
        attachments?: {
            [x: string]: any;
        }[];
        tags?: {
            [x: string]: any;
        };
        metadata?: {
            manual_location?: boolean | undefined;
            position?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            };
            lastSavedPosition?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            };
            positionProvider?: {
                gpsAvailable?: boolean;
                passiveAvailable?: boolean;
                locationServicesEnabled?: boolean;
                networkAvailable?: boolean;
            };
        };
    } & {
        id?: Buffer;
        created_at?: Date;
        timestamp?: Date | undefined;
        userId?: string | undefined;
        deviceId?: string | undefined;
        links?: string[] & string[] & { [K in Exclude<keyof I["links"], keyof string[]>]: never; };
        lat?: number | undefined;
        lon?: number | undefined;
        refs?: {
            [x: string]: any;
        }[] & ({
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_1 in Exclude<keyof I["refs"][number], string | number>]: never; })[] & { [K_2 in Exclude<keyof I["refs"], keyof {
            [x: string]: any;
        }[]>]: never; };
        attachments?: {
            [x: string]: any;
        }[] & ({
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_3 in Exclude<keyof I["attachments"][number], string | number>]: never; })[] & { [K_4 in Exclude<keyof I["attachments"], keyof {
            [x: string]: any;
        }[]>]: never; };
        tags?: {
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_5 in Exclude<keyof I["tags"], string | number>]: never; };
        metadata?: {
            manual_location?: boolean | undefined;
            position?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            };
            lastSavedPosition?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            };
            positionProvider?: {
                gpsAvailable?: boolean;
                passiveAvailable?: boolean;
                locationServicesEnabled?: boolean;
                networkAvailable?: boolean;
            };
        } & {
            manual_location?: boolean | undefined;
            position?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            } & {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                } & {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                } & { [K_6 in Exclude<keyof I["metadata"]["position"]["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
            } & { [K_7 in Exclude<keyof I["metadata"]["position"], keyof Observation_4_Metadata_Position>]: never; };
            lastSavedPosition?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            } & {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                } & {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                } & { [K_8 in Exclude<keyof I["metadata"]["lastSavedPosition"]["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
            } & { [K_9 in Exclude<keyof I["metadata"]["lastSavedPosition"], keyof Observation_4_Metadata_Position>]: never; };
            positionProvider?: {
                gpsAvailable?: boolean;
                passiveAvailable?: boolean;
                locationServicesEnabled?: boolean;
                networkAvailable?: boolean;
            } & {
                gpsAvailable?: boolean;
                passiveAvailable?: boolean;
                locationServicesEnabled?: boolean;
                networkAvailable?: boolean;
            } & { [K_10 in Exclude<keyof I["metadata"]["positionProvider"], keyof Observation_4_Metadata_PositionProvider>]: never; };
        } & { [K_11 in Exclude<keyof I["metadata"], keyof Observation_4_Metadata>]: never; };
    } & { [K_12 in Exclude<keyof I, keyof Observation_4>]: never; }>(base?: I): Observation_4;
    fromPartial<I_1 extends {
        id?: Buffer;
        created_at?: Date;
        timestamp?: Date | undefined;
        userId?: string | undefined;
        deviceId?: string | undefined;
        links?: string[];
        lat?: number | undefined;
        lon?: number | undefined;
        refs?: {
            [x: string]: any;
        }[];
        attachments?: {
            [x: string]: any;
        }[];
        tags?: {
            [x: string]: any;
        };
        metadata?: {
            manual_location?: boolean | undefined;
            position?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            };
            lastSavedPosition?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            };
            positionProvider?: {
                gpsAvailable?: boolean;
                passiveAvailable?: boolean;
                locationServicesEnabled?: boolean;
                networkAvailable?: boolean;
            };
        };
    } & {
        id?: Buffer;
        created_at?: Date;
        timestamp?: Date | undefined;
        userId?: string | undefined;
        deviceId?: string | undefined;
        links?: string[] & string[] & { [K_13 in Exclude<keyof I_1["links"], keyof string[]>]: never; };
        lat?: number | undefined;
        lon?: number | undefined;
        refs?: {
            [x: string]: any;
        }[] & ({
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_14 in Exclude<keyof I_1["refs"][number], string | number>]: never; })[] & { [K_15 in Exclude<keyof I_1["refs"], keyof {
            [x: string]: any;
        }[]>]: never; };
        attachments?: {
            [x: string]: any;
        }[] & ({
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_16 in Exclude<keyof I_1["attachments"][number], string | number>]: never; })[] & { [K_17 in Exclude<keyof I_1["attachments"], keyof {
            [x: string]: any;
        }[]>]: never; };
        tags?: {
            [x: string]: any;
        } & {
            [x: string]: any;
        } & { [K_18 in Exclude<keyof I_1["tags"], string | number>]: never; };
        metadata?: {
            manual_location?: boolean | undefined;
            position?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            };
            lastSavedPosition?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            };
            positionProvider?: {
                gpsAvailable?: boolean;
                passiveAvailable?: boolean;
                locationServicesEnabled?: boolean;
                networkAvailable?: boolean;
            };
        } & {
            manual_location?: boolean | undefined;
            position?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            } & {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                } & {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                } & { [K_19 in Exclude<keyof I_1["metadata"]["position"]["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
            } & { [K_20 in Exclude<keyof I_1["metadata"]["position"], keyof Observation_4_Metadata_Position>]: never; };
            lastSavedPosition?: {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                };
            } & {
                timestamp?: number;
                mocked?: boolean;
                coords?: {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                } & {
                    altitude?: number;
                    heading?: number;
                    longitude?: number;
                    latitude?: number;
                    speed?: number;
                    acurracy?: number;
                } & { [K_21 in Exclude<keyof I_1["metadata"]["lastSavedPosition"]["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
            } & { [K_22 in Exclude<keyof I_1["metadata"]["lastSavedPosition"], keyof Observation_4_Metadata_Position>]: never; };
            positionProvider?: {
                gpsAvailable?: boolean;
                passiveAvailable?: boolean;
                locationServicesEnabled?: boolean;
                networkAvailable?: boolean;
            } & {
                gpsAvailable?: boolean;
                passiveAvailable?: boolean;
                locationServicesEnabled?: boolean;
                networkAvailable?: boolean;
            } & { [K_23 in Exclude<keyof I_1["metadata"]["positionProvider"], keyof Observation_4_Metadata_PositionProvider>]: never; };
        } & { [K_24 in Exclude<keyof I_1["metadata"], keyof Observation_4_Metadata>]: never; };
    } & { [K_25 in Exclude<keyof I_1, keyof Observation_4>]: never; }>(object: I_1): Observation_4;
};
export declare const Observation_4_Metadata: {
    encode(message: Observation_4_Metadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Observation_4_Metadata;
    fromJSON(object: any): Observation_4_Metadata;
    toJSON(message: Observation_4_Metadata): unknown;
    create<I extends {
        manual_location?: boolean | undefined;
        position?: {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            };
        };
        lastSavedPosition?: {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            };
        };
        positionProvider?: {
            gpsAvailable?: boolean;
            passiveAvailable?: boolean;
            locationServicesEnabled?: boolean;
            networkAvailable?: boolean;
        };
    } & {
        manual_location?: boolean | undefined;
        position?: {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            };
        } & {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            } & {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            } & { [K in Exclude<keyof I["position"]["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
        } & { [K_1 in Exclude<keyof I["position"], keyof Observation_4_Metadata_Position>]: never; };
        lastSavedPosition?: {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            };
        } & {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            } & {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            } & { [K_2 in Exclude<keyof I["lastSavedPosition"]["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
        } & { [K_3 in Exclude<keyof I["lastSavedPosition"], keyof Observation_4_Metadata_Position>]: never; };
        positionProvider?: {
            gpsAvailable?: boolean;
            passiveAvailable?: boolean;
            locationServicesEnabled?: boolean;
            networkAvailable?: boolean;
        } & {
            gpsAvailable?: boolean;
            passiveAvailable?: boolean;
            locationServicesEnabled?: boolean;
            networkAvailable?: boolean;
        } & { [K_4 in Exclude<keyof I["positionProvider"], keyof Observation_4_Metadata_PositionProvider>]: never; };
    } & { [K_5 in Exclude<keyof I, keyof Observation_4_Metadata>]: never; }>(base?: I): Observation_4_Metadata;
    fromPartial<I_1 extends {
        manual_location?: boolean | undefined;
        position?: {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            };
        };
        lastSavedPosition?: {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            };
        };
        positionProvider?: {
            gpsAvailable?: boolean;
            passiveAvailable?: boolean;
            locationServicesEnabled?: boolean;
            networkAvailable?: boolean;
        };
    } & {
        manual_location?: boolean | undefined;
        position?: {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            };
        } & {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            } & {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            } & { [K_6 in Exclude<keyof I_1["position"]["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
        } & { [K_7 in Exclude<keyof I_1["position"], keyof Observation_4_Metadata_Position>]: never; };
        lastSavedPosition?: {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            };
        } & {
            timestamp?: number;
            mocked?: boolean;
            coords?: {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            } & {
                altitude?: number;
                heading?: number;
                longitude?: number;
                latitude?: number;
                speed?: number;
                acurracy?: number;
            } & { [K_8 in Exclude<keyof I_1["lastSavedPosition"]["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
        } & { [K_9 in Exclude<keyof I_1["lastSavedPosition"], keyof Observation_4_Metadata_Position>]: never; };
        positionProvider?: {
            gpsAvailable?: boolean;
            passiveAvailable?: boolean;
            locationServicesEnabled?: boolean;
            networkAvailable?: boolean;
        } & {
            gpsAvailable?: boolean;
            passiveAvailable?: boolean;
            locationServicesEnabled?: boolean;
            networkAvailable?: boolean;
        } & { [K_10 in Exclude<keyof I_1["positionProvider"], keyof Observation_4_Metadata_PositionProvider>]: never; };
    } & { [K_11 in Exclude<keyof I_1, keyof Observation_4_Metadata>]: never; }>(object: I_1): Observation_4_Metadata;
};
export declare const Observation_4_Metadata_Position: {
    encode(message: Observation_4_Metadata_Position, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Observation_4_Metadata_Position;
    fromJSON(object: any): Observation_4_Metadata_Position;
    toJSON(message: Observation_4_Metadata_Position): unknown;
    create<I extends {
        timestamp?: number;
        mocked?: boolean;
        coords?: {
            altitude?: number;
            heading?: number;
            longitude?: number;
            latitude?: number;
            speed?: number;
            acurracy?: number;
        };
    } & {
        timestamp?: number;
        mocked?: boolean;
        coords?: {
            altitude?: number;
            heading?: number;
            longitude?: number;
            latitude?: number;
            speed?: number;
            acurracy?: number;
        } & {
            altitude?: number;
            heading?: number;
            longitude?: number;
            latitude?: number;
            speed?: number;
            acurracy?: number;
        } & { [K in Exclude<keyof I["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
    } & { [K_1 in Exclude<keyof I, keyof Observation_4_Metadata_Position>]: never; }>(base?: I): Observation_4_Metadata_Position;
    fromPartial<I_1 extends {
        timestamp?: number;
        mocked?: boolean;
        coords?: {
            altitude?: number;
            heading?: number;
            longitude?: number;
            latitude?: number;
            speed?: number;
            acurracy?: number;
        };
    } & {
        timestamp?: number;
        mocked?: boolean;
        coords?: {
            altitude?: number;
            heading?: number;
            longitude?: number;
            latitude?: number;
            speed?: number;
            acurracy?: number;
        } & {
            altitude?: number;
            heading?: number;
            longitude?: number;
            latitude?: number;
            speed?: number;
            acurracy?: number;
        } & { [K_2 in Exclude<keyof I_1["coords"], keyof Observation_4_Metadata_Position_Coords>]: never; };
    } & { [K_3 in Exclude<keyof I_1, keyof Observation_4_Metadata_Position>]: never; }>(object: I_1): Observation_4_Metadata_Position;
};
export declare const Observation_4_Metadata_Position_Coords: {
    encode(message: Observation_4_Metadata_Position_Coords, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Observation_4_Metadata_Position_Coords;
    fromJSON(object: any): Observation_4_Metadata_Position_Coords;
    toJSON(message: Observation_4_Metadata_Position_Coords): unknown;
    create<I extends {
        altitude?: number;
        heading?: number;
        longitude?: number;
        latitude?: number;
        speed?: number;
        acurracy?: number;
    } & {
        altitude?: number;
        heading?: number;
        longitude?: number;
        latitude?: number;
        speed?: number;
        acurracy?: number;
    } & { [K in Exclude<keyof I, keyof Observation_4_Metadata_Position_Coords>]: never; }>(base?: I): Observation_4_Metadata_Position_Coords;
    fromPartial<I_1 extends {
        altitude?: number;
        heading?: number;
        longitude?: number;
        latitude?: number;
        speed?: number;
        acurracy?: number;
    } & {
        altitude?: number;
        heading?: number;
        longitude?: number;
        latitude?: number;
        speed?: number;
        acurracy?: number;
    } & { [K_1 in Exclude<keyof I_1, keyof Observation_4_Metadata_Position_Coords>]: never; }>(object: I_1): Observation_4_Metadata_Position_Coords;
};
export declare const Observation_4_Metadata_PositionProvider: {
    encode(message: Observation_4_Metadata_PositionProvider, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Observation_4_Metadata_PositionProvider;
    fromJSON(object: any): Observation_4_Metadata_PositionProvider;
    toJSON(message: Observation_4_Metadata_PositionProvider): unknown;
    create<I extends {
        gpsAvailable?: boolean;
        passiveAvailable?: boolean;
        locationServicesEnabled?: boolean;
        networkAvailable?: boolean;
    } & {
        gpsAvailable?: boolean;
        passiveAvailable?: boolean;
        locationServicesEnabled?: boolean;
        networkAvailable?: boolean;
    } & { [K in Exclude<keyof I, keyof Observation_4_Metadata_PositionProvider>]: never; }>(base?: I): Observation_4_Metadata_PositionProvider;
    fromPartial<I_1 extends {
        gpsAvailable?: boolean;
        passiveAvailable?: boolean;
        locationServicesEnabled?: boolean;
        networkAvailable?: boolean;
    } & {
        gpsAvailable?: boolean;
        passiveAvailable?: boolean;
        locationServicesEnabled?: boolean;
        networkAvailable?: boolean;
    } & { [K_1 in Exclude<keyof I_1, keyof Observation_4_Metadata_PositionProvider>]: never; }>(object: I_1): Observation_4_Metadata_PositionProvider;
};
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 {};
