@amplitude/analytics-core
Version:
70 lines • 2.98 kB
TypeScript
export interface IIdentify {
getUserProperties(): IdentifyUserProperties;
set(property: string, value: ValidPropertyType): IIdentify;
setOnce(property: string, value: ValidPropertyType): IIdentify;
append(property: string, value: ValidPropertyType): IIdentify;
prepend(property: string, value: ValidPropertyType): IIdentify;
postInsert(property: string, value: ValidPropertyType): IIdentify;
preInsert(property: string, value: ValidPropertyType): IIdentify;
remove(property: string, value: ValidPropertyType): IIdentify;
add(property: string, value: number): IIdentify;
unset(property: string): IIdentify;
clearAll(): IIdentify;
}
export declare class Identify implements IIdentify {
protected readonly _propertySet: Set<string>;
protected _properties: IdentifyUserProperties;
getUserProperties(): IdentifyUserProperties;
set(property: string, value: ValidPropertyType): Identify;
setOnce(property: string, value: ValidPropertyType): Identify;
append(property: string, value: ValidPropertyType): Identify;
prepend(property: string, value: ValidPropertyType): Identify;
postInsert(property: string, value: ValidPropertyType): Identify;
preInsert(property: string, value: ValidPropertyType): Identify;
remove(property: string, value: ValidPropertyType): Identify;
add(property: string, value: number): Identify;
unset(property: string): Identify;
clearAll(): Identify;
private _safeSet;
private _validate;
}
export type ValidPropertyType = number | string | boolean | Array<string | number> | {
[key: string]: ValidPropertyType;
} | Array<{
[key: string]: ValidPropertyType;
}>;
interface BaseOperationConfig {
[key: string]: ValidPropertyType;
}
export interface IdentifyUserProperties {
[IdentifyOperation.ADD]?: {
[key: string]: number;
};
[IdentifyOperation.UNSET]?: BaseOperationConfig;
[IdentifyOperation.CLEAR_ALL]?: any;
[IdentifyOperation.SET]?: BaseOperationConfig;
[IdentifyOperation.SET_ONCE]?: BaseOperationConfig;
[IdentifyOperation.APPEND]?: BaseOperationConfig;
[IdentifyOperation.PREPEND]?: BaseOperationConfig;
[IdentifyOperation.POSTINSERT]?: BaseOperationConfig;
[IdentifyOperation.PREINSERT]?: BaseOperationConfig;
[IdentifyOperation.REMOVE]?: BaseOperationConfig;
}
export declare enum IdentifyOperation {
SET = "$set",
SET_ONCE = "$setOnce",
ADD = "$add",
APPEND = "$append",
PREPEND = "$prepend",
REMOVE = "$remove",
PREINSERT = "$preInsert",
POSTINSERT = "$postInsert",
UNSET = "$unset",
CLEAR_ALL = "$clearAll"
}
/**
* Note that the order of operations should align with https://github.com/amplitude/nova/blob/7701b5986b565d4b2fb53b99a9f2175df055dea8/src/main/java/com/amplitude/ingestion/core/UserPropertyUtils.java#L210
*/
export declare const OrderedIdentifyOperations: IdentifyOperation[];
export {};
//# sourceMappingURL=identify.d.ts.map