-
Notifications
You must be signed in to change notification settings - Fork 0
/
vue-fbq.d.ts
70 lines (56 loc) · 1.54 KB
/
vue-fbq.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable no-unused-vars */
declare module "@anny.co/vue-fbq" {
import _Vue from "vue";
namespace Fbq {
interface Fbq {
(command: "event", eventName: EventNames | string, object: string): void;
}
type EventNames = "init" | "track";
}
export type FbqOptInOut = () => void;
export type FbqEvent = (
verb: Fbq.EventNames | string,
object: string
) => void;
export type FbqInit = (id?: string) => void;
export type FbqTrack = () => void;
export type Dictionary<T> = { [key: string]: T };
export interface VueFbq {
query: Fbq.Fbq;
optIn: FbqOptInOut;
optOut: FbqOptInOut;
event: FbqEvent;
}
export interface Options {
bootstrap: boolean;
onReady(args?: unknown[]): unknown;
onError(err: Error): void;
customResourceURL: string;
customNoscriptURL: string;
deferScriptLoad: boolean;
enabled: boolean;
disableScriptLoad: boolean;
appName: string;
globalObjectName: "fbq";
config: {
id: string;
};
}
export class VueFbqPlugin {
static install(Vue: typeof _Vue, options: Options): void;
}
export function bootstrap(): Promise<() => void>;
export function setOptions(options: Partial<Options>): void;
export default VueFbqPlugin;
export const event: FbqEvent;
export const init: FbqInit;
export const track: FbqTrack;
export const optIn: FbqOptInOut;
export const optOut: FbqOptInOut;
module "vue/types/vue" {
interface Vue {
$fbq: VueFbq;
}
}
}