Skip to content
This repository has been archived by the owner on May 23, 2022. It is now read-only.

Commit

Permalink
Add TypeScript definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
josh committed Aug 29, 2018
1 parent b300b16 commit a35b40b
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions lib/index.d.ts
@@ -0,0 +1,46 @@
export default class SelectorObserver {
constructor(rootNode: Node)
disconnect(): void
observe: typeof observe
}

export declare function observe<T extends Element>(
selector: string,
options: {
constructor: {new (): T}
} & Options<T>
): Observer
export declare function observe<T extends Element>(
options: {
selector: string
constructor: {new (): T}
} & Options<T>
): Observer
export declare function observe(selector: string, initialize: InitializerCallback<Element>): Observer
export declare function observe(selector: string, options: Options<Element>): Observer
export declare function observe(options: {selector: string} & Options<Element>): Observer

type Options<T> = {
initialize?: InitializerCallback<T>
add?: AddCallback<T>
remove?: RemoveCallback<T>
subscribe?: SubscribeCallback<T>
}

type InitializerCallback<T> = (el: T) => void | InitializerCallbacks<T>
type AddCallback<T> = (el: T) => void
type RemoveCallback<T> = (el: T) => void
type SubscribeCallback<T> = (el: T) => Subscription

type InitializerCallbacks<T> = {
add?: AddCallback<T>
remove?: RemoveCallback<T>
}

type Observer = {
abort(): void
}

interface Subscription {
unsubscribe(): void
}

0 comments on commit a35b40b

Please sign in to comment.