spaxel/dashboard/node_modules/pirates/index.d.ts
jedarden c817e96802 feat: implement repeated-setting change detection with guided calibration
Detects when user changes same config setting 3+ times within 24 hours.
Shows non-intrusive prompt offering help with guided calibration flow.

Guided calibration features:
- Test for false positives (walk around room)
- Test for missed motion (sit still)
- Suggest optimal value based on diurnal baseline SNR and link health
- Apply suggested value button

Files:
- dashboard/js/proactive.js: Complete implementation with localStorage tracking

Acceptance:
- Help prompt fires after 3+ changes in 24h
- Calibration flow tests both directions
- Suggests value based on system data
- Apply button works
2026-04-11 00:18:19 -04:00

82 lines
1.9 KiB
TypeScript

/* (c) 2015 Ari Porad (@ariporad) <http://ariporad.com>. License: ariporad.mit-license.org */
/**
* The hook. Accepts the code of the module and the filename.
*/
declare type Hook = (code: string, filename: string) => string;
/**
* A matcher function, will be called with path to a file.
*
* Should return truthy if the file should be hooked, falsy otherwise.
*/
declare type Matcher = (path: string) => boolean;
/**
* Reverts the hook when called.
*/
declare type RevertFunction = () => void;
interface Options {
/**
* The extensions to hook. Should start with '.' (ex. ['.js']).
*
* Takes precedence over `exts`, `extension` and `ext`.
*
* @alias exts
* @alias extension
* @alias ext
* @default ['.js']
*/
extensions?: ReadonlyArray<string> | string;
/**
* The extensions to hook. Should start with '.' (ex. ['.js']).
*
* Takes precedence over `extension` and `ext`.
*
* @alias extension
* @alias ext
* @default ['.js']
*/
exts?: ReadonlyArray<string> | string;
/**
* The extensions to hook. Should start with '.' (ex. ['.js']).
*
* Takes precedence over `ext`.
*
* @alias ext
* @default ['.js']
*/
extension?: ReadonlyArray<string> | string;
/**
* The extensions to hook. Should start with '.' (ex. ['.js']).
*
* @default ['.js']
*/
ext?: ReadonlyArray<string> | string;
/**
* A matcher function, will be called with path to a file.
*
* Should return truthy if the file should be hooked, falsy otherwise.
*/
matcher?: Matcher | null;
/**
* Auto-ignore node_modules. Independent of any matcher.
*
* @default true
*/
ignoreNodeModules?: boolean;
}
/**
* Add a require hook.
*
* @param hook The hook. Accepts the code of the module and the filename. Required.
* @returns The `revert` function. Reverts the hook when called.
*/
export declare function addHook(hook: Hook, opts?: Options): RevertFunction;
export {};