This is page 6 of 7. Use http://codebase.md/bucketco/docs/supported-languages/integrations/slack.md?format=md&lines=true&page={x} to view the full context.

# Directory Structure

```
├── .gitbook
│   ├── assets
│   │   ├── 03642c5-dwFrame_201 (1).png
│   │   ├── 03642c5-dwFrame_201.png
│   │   ├── 1753259671871 (1).jpeg
│   │   ├── 1a0b50d-image.png
│   │   ├── 1a439d9-image.png
│   │   ├── 2506596-Customized_Widgets.png
│   │   ├── 342658e-image.png
│   │   ├── 4017197-image.png
│   │   ├── 43e55f0-image.png
│   │   ├── 4783e3f-image.png
│   │   ├── 5b0ce63-image (1).png
│   │   ├── 5b0ce63-image.png
│   │   ├── 630b5e9-image.png
│   │   ├── 8bf8a6e-Frame_201.png
│   │   ├── 9efd67c-image.png
│   │   ├── aa37226-image.png
│   │   ├── Access (1) (1).png
│   │   ├── Access (1).png
│   │   ├── Access (2).png
│   │   ├── Access.png
│   │   ├── Adding features to a feature view-min.png
│   │   ├── Adopted-min.png
│   │   ├── Adoption strategy V2-min.png
│   │   ├── Adoption strategy-min.png
│   │   ├── Advanced targeting rules V2-min.png
│   │   ├── Advanced targeting rules v3-min.png
│   │   ├── Advanced targeting rules-min.png
│   │   ├── aecc6f2-image.png
│   │   ├── amplitude.svg
│   │   ├── An example targeting configuration with two rules.-min.png
│   │   ├── api.svg
│   │   ├── App Settings-min.png
│   │   ├── Automated feedback surveys settings v3-min.png
│   │   ├── Automated feedback surveys settings-min.png
│   │   ├── Automated feedback surveys-min.png
│   │   ├── aws-s3.svg
│   │   ├── be124cd-dwdwFrame_201 (1).png
│   │   ├── be124cd-dwdwFrame_201.png
│   │   ├── ccc4f9e-image.png
│   │   ├── CleanShot 2024-06-11 at 8 .25.53@2x.png
│   │   ├── CleanShot 2024-11-22 at 8 .29.42@2x.png
│   │   ├── CleanShot 2024-11-22 at 8 .31.17@2x.png
│   │   ├── CleanShot 2024-11-25 at 9 .28.08@2x.png
│   │   ├── CleanShot 2024-11-25 at 9 .33.10@2x.png
│   │   ├── CleanShot 2024-11-25 at 9 .35.11@2x.png
│   │   ├── CleanShot 2024-11-27 at 10 .45.59@2x.png
│   │   ├── CleanShot 2024-11-27 at 10 .46.36@2x.png
│   │   ├── CleanShot 2024-11-27 at 10 .47.14@2x.png
│   │   ├── CleanShot 2024-11-27 at 10 .50.48@2x.png
│   │   ├── CleanShot 2025-01-07 at 1 .19.36@2x.png
│   │   ├── CleanShot 2025-01-07 at 1 .21.09@2x.png
│   │   ├── CleanShot 2025-01-07 at 1 .22.27@2x.png
│   │   ├── CleanShot 2025-01-07 at 12 .34.32@2x.png
│   │   ├── CleanShot 2025-01-07 at 12 .39.12@2x (1).png
│   │   ├── CleanShot 2025-01-07 at 12 .39.12@2x.png
│   │   ├── CleanShot 2025-01-09 at 10 .56.14@2x.png
│   │   ├── CleanShot 2025-01-09 at 11 .11.54@2x (1).png
│   │   ├── CleanShot 2025-01-09 at 11 .11.54@2x.png
│   │   ├── CleanShot 2025-01-09 at 9 .44.28@2x.png
│   │   ├── CleanShot 2025-01-23 at 1 .48.30@2x.png
│   │   ├── CleanShot 2025-01-23 at 1 .49.29@2x.png
│   │   ├── CleanShot 2025-01-23 at 1 .49.55@2x.png
│   │   ├── CleanShot 2025-01-23 at 2 .10.23@2x.png
│   │   ├── CleanShot 2025-05-09 at 1 .29.05@2x.png
│   │   ├── CleanShot 2025-10-09 at 10 .23.21@2x.png
│   │   ├── Companies Tab-min.png
│   │   ├── Companies-min.png
│   │   ├── company example v2-min (1).png
│   │   ├── company example v2-min.png
│   │   ├── company example v3-min.png
│   │   ├── Company segment filters-min.png
│   │   ├── Create a new environment-min.png
│   │   ├── Creating and managing apps-min.png
│   │   ├── cursor-mcp-demo_h264.mp4
│   │   ├── datadog.svg
│   │   ├── Debugger-min (1).png
│   │   ├── Debugger-min (2).png
│   │   ├── Debugger-min.png
│   │   ├── Enabling Feedback Surveys-min.png
│   │   ├── Environments Page V2-min.png
│   │   ├── Environments Switcher-min.png
│   │   ├── Environments-min.png
│   │   ├── Evaluate Feature.png
│   │   ├── example 1 (1).png
│   │   ├── example 1.png
│   │   ├── example 2 (1).png
│   │   ├── example 2.png
│   │   ├── ezgif-242d06617aea38.gif
│   │   ├── Feature Tab-min.png
│   │   ├── Feature targeting rules example v2-min.png
│   │   ├── Feature targeting rules example V2-min.png
│   │   ├── Feature targeting rules example v3-min.png
│   │   ├── Feature targeting rules example-min.png
│   │   ├── Feature targeting rules UI V2-min.png
│   │   ├── Feature targeting rules UI v3-min.png
│   │   ├── Feature targeting rules UI-min.png
│   │   ├── Feature usage configuration-v2-min.png
│   │   ├── Feature view.png
│   │   ├── feature-flag-list-rum-event.d9c1c876a34458edc70d1317efaec05b.png.avif
│   │   ├── Feature-targeting-rules-v2-min.png
│   │   ├── Features Page V2-min (1).png
│   │   ├── Features Page V2-min.png
│   │   ├── Features Page-min.png
│   │   ├── Features-min.png
│   │   ├── Feedback Tab V2-min.png
│   │   ├── Feedback-min.png
│   │   ├── Getting started-min.png
│   │   ├── gitbook-logo.svg
│   │   ├── github-logo.svg
│   │   ├── Global settings - Feature views-min.png
│   │   ├── Global settings - Manual Targeting-min.png
│   │   ├── Global settings - Release Stages Editing V4-min.png
│   │   ├── Global settings - Release Stages-min.png
│   │   ├── Goal Form.png
│   │   ├── How to use release stages v2-min.png
│   │   ├── How to use release stages-min (1).png
│   │   ├── How to use release stages-min.png
│   │   ├── https___content.gitbook.com_content_pgXAy2Cgsm5pON9oJ06m_blobs_6wGbrQlJPE4JllBuIhla_image (1).png
│   │   ├── image (1) (1).png
│   │   ├── image (1) (2).png
│   │   ├── image (1).png
│   │   ├── image (10).png
│   │   ├── image (11).png
│   │   ├── image (12).png
│   │   ├── image (13).png
│   │   ├── image (14).png
│   │   ├── image (15).png
│   │   ├── image (16).png
│   │   ├── image (17).png
│   │   ├── image (18).png
│   │   ├── image (19).png
│   │   ├── image (2) (1).png
│   │   ├── image (2).png
│   │   ├── image (20).png
│   │   ├── image (21).png
│   │   ├── image (22).png
│   │   ├── image (23).png
│   │   ├── image (24).png
│   │   ├── image (25).png
│   │   ├── image (26).png
│   │   ├── image (27).png
│   │   ├── image (28).png
│   │   ├── image (29).png
│   │   ├── image (3).png
│   │   ├── image (30).png
│   │   ├── image (31).png
│   │   ├── image (32).png
│   │   ├── image (33).png
│   │   ├── image (4).png
│   │   ├── image (5).png
│   │   ├── image (6).png
│   │   ├── image (7).png
│   │   ├── image (8).png
│   │   ├── image (9).png
│   │   ├── image.png
│   │   ├── Iterate Feature V2.png
│   │   ├── LInear mention.mp4
│   │   ├── linear.svg
│   │   ├── mcp-remote-min.mp4
│   │   ├── mcp-remote.mp4
│   │   ├── mixpanel.svg
│   │   ├── Modifying or deleting an app-min.png
│   │   ├── Monitor (1) (1).png
│   │   ├── Monitor (1).png
│   │   ├── Monitor (2).png
│   │   ├── Monitor (3).png
│   │   ├── Monitor (4).png
│   │   ├── Monitor (5).png
│   │   ├── Monitor (6).png
│   │   ├── Monitor (7).png
│   │   ├── Monitor.png
│   │   ├── New feature.png
│   │   ├── next-js.svg
│   │   ├── node-js.svg
│   │   ├── openfeature.svg
│   │   ├── posthog.svg
│   │   ├── Pre-Release.png
│   │   ├── react.svg
│   │   ├── Release Goals.png
│   │   ├── Release Stage Beta Targeting Rules v3-min.png
│   │   ├── Release Stage Beta Targeting Rules V3-min.png
│   │   ├── Release Stage Beta Targeting Rules V5-min.png
│   │   ├── Release Stage Beta Targeting Rules-min.png
│   │   ├── remote config - 3.png
│   │   ├── Remote config.png
│   │   ├── Rolling back flags-V2.png
│   │   ├── Rules in other environments.png
│   │   ├── rum-explorer-error-feature-flag-search.7b9f6c046db1de1c71d279c139f1508a.png.avif
│   │   ├── rum-explorer-session-feature-flag-search.435802460fd607608ad5155f029da57b.png.avif
│   │   ├── Satisfaction feedback-min.png
│   │   ├── Satisified-min.png
│   │   ├── Save the segment-min.png
│   │   ├── Saving New Segment-min.png
│   │   ├── Screenshot 2024-08-14 at 19.25.06 (1).png
│   │   ├── Screenshot 2024-08-14 at 19.25.06.png
│   │   ├── Screenshot 2024-08-15 at 13.57.46.png
│   │   ├── Screenshot 2024-10-10 at 14.04.09.png
│   │   ├── Screenshot 2024-10-10 at 14.04.34.png
│   │   ├── Screenshot 2025-07-10 at 14.04.07.png
│   │   ├── Screenshot 2025-07-10 at 14.11.01.png
│   │   ├── Screenshot 2025-07-10 at 14.29.20.png
│   │   ├── Screenshot 2025-07-15 at 21.31.16.png
│   │   ├── Screenshot 2025-07-21 at 20.07.27.png
│   │   ├── Screenshot 2025-09-02 at 17.08.25.png
│   │   ├── Screenshot 2025-09-02 at 17.10.36 (1).png
│   │   ├── Screenshot 2025-09-02 at 17.10.36 (2).png
│   │   ├── Screenshot 2025-09-02 at 17.10.36.png
│   │   ├── Screenshot 2025-09-02 at 17.11.21 (1).png
│   │   ├── Screenshot 2025-09-02 at 17.11.21.png
│   │   ├── Screenshot 2025-09-02 at 17.13.15 (1).png
│   │   ├── Screenshot 2025-09-02 at 17.13.15.png
│   │   ├── Screenshot 2025-09-02 at 17.19.44 (1).png
│   │   ├── Screenshot 2025-09-02 at 17.19.44.png
│   │   ├── Screenshot 2025-09-09 at 09.32.31.png
│   │   ├── Screenshot 2025-09-12 at 11.50.41.png
│   │   ├── Screenshot 2025-09-12 at 12.30.38.png
│   │   ├── Screenshot 2025-09-12 at 13.14.44.png
│   │   ├── Screenshot 2025-09-12 at 13.18.07.png
│   │   ├── Screenshot 2025-09-12 at 13.21.25.png
│   │   ├── Screenshot 2025-09-12 at 13.25.21.png
│   │   ├── Screenshot 2025-09-12 at 14.29.56.png
│   │   ├── Screenshot 2025-09-12 at 14.37.52.png
│   │   ├── Screenshot 2025-09-12 at 14.58.27.png
│   │   ├── Screenshot 2025-09-12 at 15.00.32.png
│   │   ├── Screenshot 2025-09-12 at 15.01.32.png
│   │   ├── Screenshot 2025-09-12 at 15.03.33.png
│   │   ├── Screenshot 2025-09-12 at 15.04.39.png
│   │   ├── Screenshot 2025-09-12 at 15.06.50.png
│   │   ├── Screenshot 2025-09-12 at 15.13.45.png
│   │   ├── Screenshot 2025-09-12 at 15.14.43.png
│   │   ├── Screenshot 2025-09-12 at 15.16.42.png
│   │   ├── Screenshot 2025-09-12 at 15.18.42.png
│   │   ├── Screenshot 2025-09-12 at 15.32.39.png
│   │   ├── Screenshot 2025-09-12 at 15.33.57.png
│   │   ├── Screenshot 2025-09-12 at 15.35.09.png
│   │   ├── Screenshot 2025-09-12 at 15.36.14.png
│   │   ├── segment (1).svg
│   │   ├── segment.svg
│   │   ├── Segments.png
│   │   ├── Set segment conditions-min.png
│   │   ├── Setting multiple targeting rules.png
│   │   ├── Setting Tab-min.png
│   │   ├── Setting targeting rules v3-min.png
│   │   ├── Setting targeting rules-min.png
│   │   ├── Settings-min (1).png
│   │   ├── Settings-min.png
│   │   ├── slack (1).svg
│   │   ├── Slack (with auto-layout)-min.png
│   │   ├── Slack and Environments-min.png
│   │   ├── Slack and Feature views-min.png
│   │   ├── Slack Integration.png
│   │   ├── Slack Settings under Features-min.png
│   │   ├── Slack with User Feedback.png
│   │   ├── slack.svg
│   │   ├── slackConnected (1).png
│   │   ├── slackConnected.png
│   │   ├── slackDisconnected (1).png
│   │   ├── slackDisconnected.png
│   │   ├── STARS Configuration-min.png
│   │   ├── STARS Feature Funnel-min.png
│   │   ├── STARS Feature Report-min.png
│   │   ├── STARS states.png
│   │   ├── surveys-min.png
│   │   ├── Switching Between Environments-min.png
│   │   ├── Targeting rules interface-min.png
│   │   ├── Targeting rules.png
│   │   ├── There are 5 different types of conditions to chose from-min.png
│   │   ├── Track adoption in the UI V2-min.png
│   │   ├── Track adoption in the UI v3-min.png
│   │   ├── Track adoption in the UI-min.png
│   │   ├── Track new feature V2-min.png
│   │   ├── Tracking Tab-min.png
│   │   ├── ts-js.svg
│   │   ├── type-check-failed.png
│   │   ├── type-check-payload-failed.png
│   │   ├── usage attribute example v3.png
│   │   ├── usage attribute example-min.png
│   │   ├── Usage configuration-min.png
│   │   ├── vercel-logo.svg
│   │   ├── vue-logo.svg
│   │   ├── What is the STARS Framework v3-min.png
│   │   └── What is the STARS Framework_-min.png
│   └── includes
│       ├── integrations.md
│       ├── languages.md
│       ├── need-some-help-chat-with-us.md
│       ├── sdks.md
│       └── untitled.md
├── .github
│   └── README.md
├── .vscode
│   └── settings.json
├── api
│   ├── api-access.md
│   ├── cli.md
│   ├── mcp.md
│   ├── public-api
│   │   ├── public-api-reference.md
│   │   └── README.md
│   └── reflag-rest-api
│       ├── README.md
│       └── reflag-api-reference.md
├── guides
│   ├── self-opt-in.md
│   └── use-reflag-in-your-cli.md
├── integrations
│   ├── amplitude.md
│   ├── aws-s3.md
│   ├── cursor.md
│   ├── datadog.md
│   ├── github.md
│   ├── linear.md
│   ├── mixpanel.md
│   ├── overview.md
│   ├── posthog.md
│   ├── segment.md
│   └── slack.md
├── introduction
│   └── concepts
│       ├── app.md
│       ├── company.md
│       ├── environment.md
│       ├── event.md
│       ├── feature-events.md
│       ├── feature-view.md
│       ├── feature.md
│       ├── feedback.md
│       ├── filter.md
│       ├── README.md
│       ├── release-stage.md
│       ├── segment.md
│       ├── targeting-rules.md
│       └── user.md
├── product-handbook
│   ├── anonymous-users.md
│   ├── concepts
│   │   ├── app.md
│   │   ├── company.md
│   │   ├── environment.md
│   │   ├── event.md
│   │   ├── feature-events.md
│   │   ├── feature-view.md
│   │   ├── feature.md
│   │   ├── feedback.md
│   │   ├── filter.md
│   │   ├── README.md
│   │   ├── release-stage.md
│   │   ├── segment.md
│   │   ├── targeting-rules.md
│   │   └── user.md
│   ├── creating-and-managing-apps
│   │   ├── environments.md
│   │   └── README.md
│   ├── creating-and-managing-apps.md
│   ├── creating-segments.md
│   ├── data-export.md
│   ├── data-residency.md
│   ├── feature-clean-up-and-archival-beta
│   │   ├── ai-code-clean-up-beta.md
│   │   └── README.md
│   ├── feature-entitlements
│   │   ├── README.md
│   │   └── simple-role-based-entitlements.md
│   ├── feature-rollouts
│   │   ├── feature-targeting-rules.md
│   │   └── README.md
│   ├── feature-targeting-rules
│   │   ├── creating-segments.md
│   │   └── environments.md
│   ├── feature-views.md
│   ├── launch-monitor
│   │   ├── automated-feedback-surveys.md
│   │   ├── give-feedback-button.md
│   │   └── README.md
│   ├── product-overview.md
│   ├── remote-config.md
│   ├── self-opt-in.md
│   ├── service-resiliency.md
│   ├── team-permissions.md
│   └── type-safety.md
├── README.md
├── sdk
│   ├── _media
│   │   ├── type-check-failed.png
│   │   └── type-check-payload-failed.png
│   ├── @reflag
│   │   ├── browser-sdk
│   │   │   ├── globals.md
│   │   │   └── README.md
│   │   ├── node-sdk
│   │   │   ├── globals.md
│   │   │   └── README.md
│   │   ├── react-sdk
│   │   │   ├── globals.md
│   │   │   └── README.md
│   │   └── vue-sdk
│   │       ├── globals.md
│   │       └── README.md
│   ├── documents
│   │   ├── browser-sdk
│   │   │   └── FEEDBACK.md
│   │   └── cli
│   │       └── README.md
│   └── README.md
├── SUMMARY.md
├── support
│   └── get-support.md
└── supported-languages
    ├── next.js.md
    ├── openfeature.md
    ├── overview.md
    └── ruby-rails-stimulus.md
```

# Files

--------------------------------------------------------------------------------
/sdk/@reflag/browser-sdk/globals.md:
--------------------------------------------------------------------------------

```markdown
   1 | ---
   2 | layout:
   3 |   visible: true
   4 | title:
   5 |   visible: true
   6 | description:
   7 |   visible: false
   8 | tableOfContents:
   9 |   visible: true
  10 | outline:
  11 |   visible: true
  12 | pagination:
  13 |   visible: true
  14 | ---
  15 | 
  16 | # @reflag/browser-sdk
  17 | 
  18 | ## Classes
  19 | 
  20 | ### ReflagClient
  21 | 
  22 | ReflagClient lets you interact with the Reflag API.
  23 | 
  24 | #### Constructors
  25 | 
  26 | ##### new ReflagClient()
  27 | 
  28 | ```ts
  29 | new ReflagClient(opts: InitOptions): ReflagClient
  30 | ```
  31 | 
  32 | Create a new ReflagClient instance.
  33 | 
  34 | ###### Parameters
  35 | 
  36 | <table>
  37 | <thead>
  38 | <tr>
  39 | <th>Parameter</th>
  40 | <th>Type</th>
  41 | </tr>
  42 | </thead>
  43 | <tbody>
  44 | <tr>
  45 | <td>
  46 | 
  47 | `opts`
  48 | 
  49 | </td>
  50 | <td>
  51 | 
  52 | [`InitOptions`](globals.md#initoptions)
  53 | 
  54 | </td>
  55 | </tr>
  56 | </tbody>
  57 | </table>
  58 | 
  59 | ###### Returns
  60 | 
  61 | [`ReflagClient`](globals.md#reflagclient)
  62 | 
  63 | #### Properties
  64 | 
  65 | <table>
  66 | <thead>
  67 | <tr>
  68 | <th>Property</th>
  69 | <th>Modifier</th>
  70 | <th>Type</th>
  71 | </tr>
  72 | </thead>
  73 | <tbody>
  74 | <tr>
  75 | <td>
  76 | 
  77 | <a id="logger"></a> `logger`
  78 | 
  79 | </td>
  80 | <td>
  81 | 
  82 | `readonly`
  83 | 
  84 | </td>
  85 | <td>
  86 | 
  87 | [`Logger`](globals.md#logger-1)
  88 | 
  89 | </td>
  90 | </tr>
  91 | </tbody>
  92 | </table>
  93 | 
  94 | #### Methods
  95 | 
  96 | ##### feedback()
  97 | 
  98 | ```ts
  99 | feedback(payload: Feedback): Promise<
 100 |   | undefined
 101 | | Response>
 102 | ```
 103 | 
 104 | Submit user feedback to Reflag. Must include either `score` or `comment`, or both.
 105 | 
 106 | ###### Parameters
 107 | 
 108 | <table>
 109 | <thead>
 110 | <tr>
 111 | <th>Parameter</th>
 112 | <th>Type</th>
 113 | <th>Description</th>
 114 | </tr>
 115 | </thead>
 116 | <tbody>
 117 | <tr>
 118 | <td>
 119 | 
 120 | `payload`
 121 | 
 122 | </td>
 123 | <td>
 124 | 
 125 | [`Feedback`](globals.md#feedback-1)
 126 | 
 127 | </td>
 128 | <td>
 129 | 
 130 | The feedback details to submit.
 131 | 
 132 | </td>
 133 | </tr>
 134 | </tbody>
 135 | </table>
 136 | 
 137 | ###### Returns
 138 | 
 139 | [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<
 140 |   \| `undefined`
 141 |   \| [`Response`](https://developer.mozilla.org/docs/Web/API/Response)\>
 142 | 
 143 | The server response.
 144 | 
 145 | ##### getConfig()
 146 | 
 147 | ```ts
 148 | getConfig(): Config
 149 | ```
 150 | 
 151 | Get the current configuration.
 152 | 
 153 | ###### Returns
 154 | 
 155 | [`Config`](globals.md#config)
 156 | 
 157 | ##### getContext()
 158 | 
 159 | ```ts
 160 | getContext(): ReflagContext
 161 | ```
 162 | 
 163 | Get the current context.
 164 | 
 165 | ###### Returns
 166 | 
 167 | [`ReflagContext`](globals.md#reflagcontext)
 168 | 
 169 | ##### ~~getFeature()~~
 170 | 
 171 | ```ts
 172 | getFeature(flagKey: string): Flag
 173 | ```
 174 | 
 175 | ###### Parameters
 176 | 
 177 | <table>
 178 | <thead>
 179 | <tr>
 180 | <th>Parameter</th>
 181 | <th>Type</th>
 182 | </tr>
 183 | </thead>
 184 | <tbody>
 185 | <tr>
 186 | <td>
 187 | 
 188 | `flagKey`
 189 | 
 190 | </td>
 191 | <td>
 192 | 
 193 | `string`
 194 | 
 195 | </td>
 196 | </tr>
 197 | </tbody>
 198 | </table>
 199 | 
 200 | ###### Returns
 201 | 
 202 | [`Flag`](globals.md#flag)
 203 | 
 204 | ###### Deprecated
 205 | 
 206 | Use `getFlag` instead.
 207 | 
 208 | ##### ~~getFeatures()~~
 209 | 
 210 | ```ts
 211 | getFeatures(): RawFlags
 212 | ```
 213 | 
 214 | ###### Returns
 215 | 
 216 | [`RawFlags`](globals.md#rawflags)
 217 | 
 218 | ###### Deprecated
 219 | 
 220 | Use `getFlags` instead.
 221 | 
 222 | ##### getFlag()
 223 | 
 224 | ```ts
 225 | getFlag(flagKey: string): Flag
 226 | ```
 227 | 
 228 | Return a flag. Accessing `isEnabled` or `config` will automatically send a `check` event.
 229 | 
 230 | ###### Parameters
 231 | 
 232 | <table>
 233 | <thead>
 234 | <tr>
 235 | <th>Parameter</th>
 236 | <th>Type</th>
 237 | <th>Description</th>
 238 | </tr>
 239 | </thead>
 240 | <tbody>
 241 | <tr>
 242 | <td>
 243 | 
 244 | `flagKey`
 245 | 
 246 | </td>
 247 | <td>
 248 | 
 249 | `string`
 250 | 
 251 | </td>
 252 | <td>
 253 | 
 254 | The key of the flag to get.
 255 | 
 256 | </td>
 257 | </tr>
 258 | </tbody>
 259 | </table>
 260 | 
 261 | ###### Returns
 262 | 
 263 | [`Flag`](globals.md#flag)
 264 | 
 265 | A flag.
 266 | 
 267 | ##### getFlags()
 268 | 
 269 | ```ts
 270 | getFlags(): RawFlags
 271 | ```
 272 | 
 273 | Returns a map of enabled flags.
 274 | Accessing a flag will *not* send a check event
 275 | and `isEnabled` does not take any flag overrides
 276 | into account.
 277 | 
 278 | ###### Returns
 279 | 
 280 | [`RawFlags`](globals.md#rawflags)
 281 | 
 282 | Map of flags.
 283 | 
 284 | ##### getState()
 285 | 
 286 | ```ts
 287 | getState(): State
 288 | ```
 289 | 
 290 | ###### Returns
 291 | 
 292 | [`State`](globals.md#state)
 293 | 
 294 | ##### initialize()
 295 | 
 296 | ```ts
 297 | initialize(): Promise<void>
 298 | ```
 299 | 
 300 | Initialize the Reflag SDK.
 301 | 
 302 | Must be called before calling other SDK methods.
 303 | 
 304 | ###### Returns
 305 | 
 306 | [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\>
 307 | 
 308 | ##### off()
 309 | 
 310 | ```ts
 311 | off<THookType>(type: THookType, handler: (args0: HookArgs[THookType]) => void): void
 312 | ```
 313 | 
 314 | Remove an event listener
 315 | 
 316 | ###### Type Parameters
 317 | 
 318 | <table>
 319 | <thead>
 320 | <tr>
 321 | <th>Type Parameter</th>
 322 | </tr>
 323 | </thead>
 324 | <tbody>
 325 | <tr>
 326 | <td>
 327 | 
 328 | `THookType` *extends* keyof [`HookArgs`](globals.md#hookargs)
 329 | 
 330 | </td>
 331 | </tr>
 332 | </tbody>
 333 | </table>
 334 | 
 335 | ###### Parameters
 336 | 
 337 | <table>
 338 | <thead>
 339 | <tr>
 340 | <th>Parameter</th>
 341 | <th>Type</th>
 342 | <th>Description</th>
 343 | </tr>
 344 | </thead>
 345 | <tbody>
 346 | <tr>
 347 | <td>
 348 | 
 349 | `type`
 350 | 
 351 | </td>
 352 | <td>
 353 | 
 354 | `THookType`
 355 | 
 356 | </td>
 357 | <td>
 358 | 
 359 | Type of event to remove.
 360 | 
 361 | </td>
 362 | </tr>
 363 | <tr>
 364 | <td>
 365 | 
 366 | `handler`
 367 | 
 368 | </td>
 369 | <td>
 370 | 
 371 | (`args0`: [`HookArgs`](globals.md#hookargs)\[`THookType`\]) => `void`
 372 | 
 373 | </td>
 374 | <td>
 375 | 
 376 | The same function that was passed to `on`.
 377 | 
 378 | </td>
 379 | </tr>
 380 | </tbody>
 381 | </table>
 382 | 
 383 | ###### Returns
 384 | 
 385 | `void`
 386 | 
 387 | A function to remove the hook.
 388 | 
 389 | ##### on()
 390 | 
 391 | ```ts
 392 | on<THookType>(type: THookType, handler: (args0: HookArgs[THookType]) => void): () => void
 393 | ```
 394 | 
 395 | Add an event listener
 396 | 
 397 | ###### Type Parameters
 398 | 
 399 | <table>
 400 | <thead>
 401 | <tr>
 402 | <th>Type Parameter</th>
 403 | </tr>
 404 | </thead>
 405 | <tbody>
 406 | <tr>
 407 | <td>
 408 | 
 409 | `THookType` *extends* keyof [`HookArgs`](globals.md#hookargs)
 410 | 
 411 | </td>
 412 | </tr>
 413 | </tbody>
 414 | </table>
 415 | 
 416 | ###### Parameters
 417 | 
 418 | <table>
 419 | <thead>
 420 | <tr>
 421 | <th>Parameter</th>
 422 | <th>Type</th>
 423 | <th>Description</th>
 424 | </tr>
 425 | </thead>
 426 | <tbody>
 427 | <tr>
 428 | <td>
 429 | 
 430 | `type`
 431 | 
 432 | </td>
 433 | <td>
 434 | 
 435 | `THookType`
 436 | 
 437 | </td>
 438 | <td>
 439 | 
 440 | Type of events to listen for
 441 | 
 442 | </td>
 443 | </tr>
 444 | <tr>
 445 | <td>
 446 | 
 447 | `handler`
 448 | 
 449 | </td>
 450 | <td>
 451 | 
 452 | (`args0`: [`HookArgs`](globals.md#hookargs)\[`THookType`\]) => `void`
 453 | 
 454 | </td>
 455 | <td>
 456 | 
 457 | The function to call when the event is triggered.
 458 | 
 459 | </td>
 460 | </tr>
 461 | </tbody>
 462 | </table>
 463 | 
 464 | ###### Returns
 465 | 
 466 | `Function`
 467 | 
 468 | A function to remove the hook.
 469 | 
 470 | ###### Returns
 471 | 
 472 | `void`
 473 | 
 474 | ##### requestFeedback()
 475 | 
 476 | ```ts
 477 | requestFeedback(options: RequestFeedbackData): void
 478 | ```
 479 | 
 480 | Display the Reflag feedback form UI programmatically.
 481 | 
 482 | This can be used to collect feedback from users in Reflag in cases where Automated Feedback Surveys isn't appropriate.
 483 | 
 484 | ###### Parameters
 485 | 
 486 | <table>
 487 | <thead>
 488 | <tr>
 489 | <th>Parameter</th>
 490 | <th>Type</th>
 491 | </tr>
 492 | </thead>
 493 | <tbody>
 494 | <tr>
 495 | <td>
 496 | 
 497 | `options`
 498 | 
 499 | </td>
 500 | <td>
 501 | 
 502 | [`RequestFeedbackData`](globals.md#requestfeedbackdata)
 503 | 
 504 | </td>
 505 | </tr>
 506 | </tbody>
 507 | </table>
 508 | 
 509 | ###### Returns
 510 | 
 511 | `void`
 512 | 
 513 | ##### setContext()
 514 | 
 515 | ```ts
 516 | setContext(context: ReflagDeprecatedContext): Promise<void>
 517 | ```
 518 | 
 519 | Update the context.
 520 | Replaces the existing context with a new context.
 521 | 
 522 | ###### Parameters
 523 | 
 524 | <table>
 525 | <thead>
 526 | <tr>
 527 | <th>Parameter</th>
 528 | <th>Type</th>
 529 | <th>Description</th>
 530 | </tr>
 531 | </thead>
 532 | <tbody>
 533 | <tr>
 534 | <td>
 535 | 
 536 | `context`
 537 | 
 538 | </td>
 539 | <td>
 540 | 
 541 | [`ReflagDeprecatedContext`](globals.md#reflagdeprecatedcontext)
 542 | 
 543 | </td>
 544 | <td>
 545 | 
 546 | The context to update.
 547 | 
 548 | </td>
 549 | </tr>
 550 | </tbody>
 551 | </table>
 552 | 
 553 | ###### Returns
 554 | 
 555 | [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\>
 556 | 
 557 | ##### stop()
 558 | 
 559 | ```ts
 560 | stop(): Promise<void>
 561 | ```
 562 | 
 563 | Stop the SDK.
 564 | This will stop any automated feedback surveys.
 565 | 
 566 | ###### Returns
 567 | 
 568 | [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\>
 569 | 
 570 | ##### track()
 571 | 
 572 | ```ts
 573 | track(eventName: string, attributes?: 
 574 |   | null
 575 |   | Record<string, any>): Promise<
 576 |   | undefined
 577 | | Response>
 578 | ```
 579 | 
 580 | Track an event in Reflag.
 581 | 
 582 | ###### Parameters
 583 | 
 584 | <table>
 585 | <thead>
 586 | <tr>
 587 | <th>Parameter</th>
 588 | <th>Type</th>
 589 | <th>Description</th>
 590 | </tr>
 591 | </thead>
 592 | <tbody>
 593 | <tr>
 594 | <td>
 595 | 
 596 | `eventName`
 597 | 
 598 | </td>
 599 | <td>
 600 | 
 601 | `string`
 602 | 
 603 | </td>
 604 | <td>
 605 | 
 606 | The name of the event.
 607 | 
 608 | </td>
 609 | </tr>
 610 | <tr>
 611 | <td>
 612 | 
 613 | `attributes`?
 614 | 
 615 | </td>
 616 | <td>
 617 | 
 618 |  \| `null` \| [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `any`\>
 619 | 
 620 | </td>
 621 | <td>
 622 | 
 623 | Any attributes you want to attach to the event.
 624 | 
 625 | </td>
 626 | </tr>
 627 | </tbody>
 628 | </table>
 629 | 
 630 | ###### Returns
 631 | 
 632 | [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<
 633 |   \| `undefined`
 634 |   \| [`Response`](https://developer.mozilla.org/docs/Web/API/Response)\>
 635 | 
 636 | ##### updateCompany()
 637 | 
 638 | ```ts
 639 | updateCompany(company: {}): Promise<void>
 640 | ```
 641 | 
 642 | Update the company context.
 643 | Performs a shallow merge with the existing company context.
 644 | It will not update the context if nothing has changed.
 645 | 
 646 | ###### Parameters
 647 | 
 648 | <table>
 649 | <thead>
 650 | <tr>
 651 | <th>Parameter</th>
 652 | <th>Type</th>
 653 | <th>Description</th>
 654 | </tr>
 655 | </thead>
 656 | <tbody>
 657 | <tr>
 658 | <td>
 659 | 
 660 | `company`
 661 | 
 662 | </td>
 663 | <td>
 664 | 
 665 | \{\}
 666 | 
 667 | </td>
 668 | <td>
 669 | 
 670 | The company details.
 671 | 
 672 | </td>
 673 | </tr>
 674 | </tbody>
 675 | </table>
 676 | 
 677 | ###### Returns
 678 | 
 679 | [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\>
 680 | 
 681 | ##### updateFlags()
 682 | 
 683 | ```ts
 684 | updateFlags(flags: RawFlags, triggerEvent: boolean): void
 685 | ```
 686 | 
 687 | Update the flags.
 688 | 
 689 | ###### Parameters
 690 | 
 691 | <table>
 692 | <thead>
 693 | <tr>
 694 | <th>Parameter</th>
 695 | <th>Type</th>
 696 | <th>Default value</th>
 697 | <th>Description</th>
 698 | </tr>
 699 | </thead>
 700 | <tbody>
 701 | <tr>
 702 | <td>
 703 | 
 704 | `flags`
 705 | 
 706 | </td>
 707 | <td>
 708 | 
 709 | [`RawFlags`](globals.md#rawflags)
 710 | 
 711 | </td>
 712 | <td>
 713 | 
 714 | `undefined`
 715 | 
 716 | </td>
 717 | <td>
 718 | 
 719 | The flags to update.
 720 | 
 721 | </td>
 722 | </tr>
 723 | <tr>
 724 | <td>
 725 | 
 726 | `triggerEvent`
 727 | 
 728 | </td>
 729 | <td>
 730 | 
 731 | `boolean`
 732 | 
 733 | </td>
 734 | <td>
 735 | 
 736 | `true`
 737 | 
 738 | </td>
 739 | <td>
 740 | 
 741 | Whether to trigger the `flagsUpdated` event.
 742 | 
 743 | </td>
 744 | </tr>
 745 | </tbody>
 746 | </table>
 747 | 
 748 | ###### Returns
 749 | 
 750 | `void`
 751 | 
 752 | ##### updateOtherContext()
 753 | 
 754 | ```ts
 755 | updateOtherContext(otherContext: {}): Promise<void>
 756 | ```
 757 | 
 758 | Update the company context.
 759 | Performs a shallow merge with the existing company context.
 760 | It will not update the context if nothing has changed.
 761 | 
 762 | ###### Parameters
 763 | 
 764 | <table>
 765 | <thead>
 766 | <tr>
 767 | <th>Parameter</th>
 768 | <th>Type</th>
 769 | <th>Description</th>
 770 | </tr>
 771 | </thead>
 772 | <tbody>
 773 | <tr>
 774 | <td>
 775 | 
 776 | `otherContext`
 777 | 
 778 | </td>
 779 | <td>
 780 | 
 781 | \{\}
 782 | 
 783 | </td>
 784 | <td>
 785 | 
 786 | Additional context.
 787 | 
 788 | </td>
 789 | </tr>
 790 | </tbody>
 791 | </table>
 792 | 
 793 | ###### Returns
 794 | 
 795 | [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\>
 796 | 
 797 | ##### updateUser()
 798 | 
 799 | ```ts
 800 | updateUser(user: {}): Promise<void>
 801 | ```
 802 | 
 803 | Update the user context.
 804 | Performs a shallow merge with the existing user context.
 805 | It will not update the context if nothing has changed.
 806 | 
 807 | ###### Parameters
 808 | 
 809 | <table>
 810 | <thead>
 811 | <tr>
 812 | <th>Parameter</th>
 813 | <th>Type</th>
 814 | </tr>
 815 | </thead>
 816 | <tbody>
 817 | <tr>
 818 | <td>
 819 | 
 820 | `user`
 821 | 
 822 | </td>
 823 | <td>
 824 | 
 825 | \{\}
 826 | 
 827 | </td>
 828 | </tr>
 829 | </tbody>
 830 | </table>
 831 | 
 832 | ###### Returns
 833 | 
 834 | [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\>
 835 | 
 836 | ## Interfaces
 837 | 
 838 | ### CheckEvent
 839 | 
 840 | Event representing checking the flag evaluation result
 841 | 
 842 | #### Properties
 843 | 
 844 | <table>
 845 | <thead>
 846 | <tr>
 847 | <th>Property</th>
 848 | <th>Type</th>
 849 | <th>Description</th>
 850 | </tr>
 851 | </thead>
 852 | <tbody>
 853 | <tr>
 854 | <td>
 855 | 
 856 | <a id="action"></a> `action`
 857 | 
 858 | </td>
 859 | <td>
 860 | 
 861 | `"check-is-enabled"` \| `"check-config"`
 862 | 
 863 | </td>
 864 | <td>
 865 | 
 866 | `check-is-enabled` means `isEnabled` was checked, `check-config` means `config` was checked.
 867 | 
 868 | </td>
 869 | </tr>
 870 | <tr>
 871 | <td>
 872 | 
 873 | <a id="key"></a> `key`
 874 | 
 875 | </td>
 876 | <td>
 877 | 
 878 | `string`
 879 | 
 880 | </td>
 881 | <td>
 882 | 
 883 | Flag key.
 884 | 
 885 | </td>
 886 | </tr>
 887 | <tr>
 888 | <td>
 889 | 
 890 | <a id="missingcontextfields"></a> `missingContextFields?`
 891 | 
 892 | </td>
 893 | <td>
 894 | 
 895 | `string`[]
 896 | 
 897 | </td>
 898 | <td>
 899 | 
 900 | Missing context fields.
 901 | 
 902 | </td>
 903 | </tr>
 904 | <tr>
 905 | <td>
 906 | 
 907 | <a id="ruleevaluationresults"></a> `ruleEvaluationResults?`
 908 | 
 909 | </td>
 910 | <td>
 911 | 
 912 | `boolean`[]
 913 | 
 914 | </td>
 915 | <td>
 916 | 
 917 | Rule evaluation results.
 918 | 
 919 | </td>
 920 | </tr>
 921 | <tr>
 922 | <td>
 923 | 
 924 | <a id="value"></a> `value?`
 925 | 
 926 | </td>
 927 | <td>
 928 | 
 929 |  \| `boolean` \| \{ `key`: `string`; `payload`: `any`; \}
 930 | 
 931 | </td>
 932 | <td>
 933 | 
 934 | Result of flag or configuration evaluation.
 935 | If `action` is `check-is-enabled`, this is the result of the flag evaluation and `value` is a boolean.
 936 | If `action` is `check-config`, this is the result of the configuration evaluation.
 937 | 
 938 | </td>
 939 | </tr>
 940 | <tr>
 941 | <td>
 942 | 
 943 | <a id="version"></a> `version?`
 944 | 
 945 | </td>
 946 | <td>
 947 | 
 948 | `number`
 949 | 
 950 | </td>
 951 | <td>
 952 | 
 953 | Version of targeting rules.
 954 | 
 955 | </td>
 956 | </tr>
 957 | </tbody>
 958 | </table>
 959 | 
 960 | ***
 961 | 
 962 | ### CompanyContext
 963 | 
 964 | Context is a set of key-value pairs.
 965 | This is used to determine if feature targeting matches and to track events.
 966 | Id should always be present so that it can be referenced to an existing company.
 967 | 
 968 | #### Indexable
 969 | 
 970 | ```ts
 971 | [key: string]: undefined | string | number
 972 | ```
 973 | 
 974 | #### Properties
 975 | 
 976 | <table>
 977 | <thead>
 978 | <tr>
 979 | <th>Property</th>
 980 | <th>Type</th>
 981 | <th>Description</th>
 982 | </tr>
 983 | </thead>
 984 | <tbody>
 985 | <tr>
 986 | <td>
 987 | 
 988 | <a id="id"></a> `id`
 989 | 
 990 | </td>
 991 | <td>
 992 | 
 993 | `undefined` \| `string` \| `number`
 994 | 
 995 | </td>
 996 | <td>
 997 | 
 998 | Company id
 999 | 
1000 | </td>
1001 | </tr>
1002 | <tr>
1003 | <td>
1004 | 
1005 | <a id="name"></a> `name?`
1006 | 
1007 | </td>
1008 | <td>
1009 | 
1010 | `string`
1011 | 
1012 | </td>
1013 | <td>
1014 | 
1015 | Company name
1016 | 
1017 | </td>
1018 | </tr>
1019 | </tbody>
1020 | </table>
1021 | 
1022 | ***
1023 | 
1024 | ### Config
1025 | 
1026 | ReflagClient configuration.
1027 | 
1028 | #### Properties
1029 | 
1030 | <table>
1031 | <thead>
1032 | <tr>
1033 | <th>Property</th>
1034 | <th>Type</th>
1035 | <th>Description</th>
1036 | </tr>
1037 | </thead>
1038 | <tbody>
1039 | <tr>
1040 | <td>
1041 | 
1042 | <a id="apibaseurl"></a> `apiBaseUrl`
1043 | 
1044 | </td>
1045 | <td>
1046 | 
1047 | `string`
1048 | 
1049 | </td>
1050 | <td>
1051 | 
1052 | Base URL of Reflag servers.
1053 | 
1054 | </td>
1055 | </tr>
1056 | <tr>
1057 | <td>
1058 | 
1059 | <a id="appbaseurl"></a> `appBaseUrl`
1060 | 
1061 | </td>
1062 | <td>
1063 | 
1064 | `string`
1065 | 
1066 | </td>
1067 | <td>
1068 | 
1069 | Base URL of the Reflag web app.
1070 | 
1071 | </td>
1072 | </tr>
1073 | <tr>
1074 | <td>
1075 | 
1076 | <a id="bootstrapped"></a> `bootstrapped`
1077 | 
1078 | </td>
1079 | <td>
1080 | 
1081 | `boolean`
1082 | 
1083 | </td>
1084 | <td>
1085 | 
1086 | Whether the client is bootstrapped.
1087 | 
1088 | </td>
1089 | </tr>
1090 | <tr>
1091 | <td>
1092 | 
1093 | <a id="enabletracking"></a> `enableTracking`
1094 | 
1095 | </td>
1096 | <td>
1097 | 
1098 | `boolean`
1099 | 
1100 | </td>
1101 | <td>
1102 | 
1103 | Whether to enable tracking.
1104 | 
1105 | </td>
1106 | </tr>
1107 | <tr>
1108 | <td>
1109 | 
1110 | <a id="offline"></a> `offline`
1111 | 
1112 | </td>
1113 | <td>
1114 | 
1115 | `boolean`
1116 | 
1117 | </td>
1118 | <td>
1119 | 
1120 | Whether to enable offline mode.
1121 | 
1122 | </td>
1123 | </tr>
1124 | <tr>
1125 | <td>
1126 | 
1127 | <a id="ssebaseurl"></a> `sseBaseUrl`
1128 | 
1129 | </td>
1130 | <td>
1131 | 
1132 | `string`
1133 | 
1134 | </td>
1135 | <td>
1136 | 
1137 | Base URL of Reflag servers for SSE connections used by AutoFeedback.
1138 | 
1139 | </td>
1140 | </tr>
1141 | </tbody>
1142 | </table>
1143 | 
1144 | ***
1145 | 
1146 | ### FeedbackScoreSubmission
1147 | 
1148 | #### Properties
1149 | 
1150 | <table>
1151 | <thead>
1152 | <tr>
1153 | <th>Property</th>
1154 | <th>Type</th>
1155 | </tr>
1156 | </thead>
1157 | <tbody>
1158 | <tr>
1159 | <td>
1160 | 
1161 | <a id="feedbackid"></a> `feedbackId?`
1162 | 
1163 | </td>
1164 | <td>
1165 | 
1166 | `string`
1167 | 
1168 | </td>
1169 | </tr>
1170 | <tr>
1171 | <td>
1172 | 
1173 | <a id="question"></a> `question`
1174 | 
1175 | </td>
1176 | <td>
1177 | 
1178 | `string`
1179 | 
1180 | </td>
1181 | </tr>
1182 | <tr>
1183 | <td>
1184 | 
1185 | <a id="score"></a> `score`
1186 | 
1187 | </td>
1188 | <td>
1189 | 
1190 | `number`
1191 | 
1192 | </td>
1193 | </tr>
1194 | </tbody>
1195 | </table>
1196 | 
1197 | ***
1198 | 
1199 | ### FeedbackSubmission
1200 | 
1201 | #### Properties
1202 | 
1203 | <table>
1204 | <thead>
1205 | <tr>
1206 | <th>Property</th>
1207 | <th>Type</th>
1208 | </tr>
1209 | </thead>
1210 | <tbody>
1211 | <tr>
1212 | <td>
1213 | 
1214 | <a id="comment"></a> `comment`
1215 | 
1216 | </td>
1217 | <td>
1218 | 
1219 | `string`
1220 | 
1221 | </td>
1222 | </tr>
1223 | <tr>
1224 | <td>
1225 | 
1226 | <a id="feedbackid-1"></a> `feedbackId?`
1227 | 
1228 | </td>
1229 | <td>
1230 | 
1231 | `string`
1232 | 
1233 | </td>
1234 | </tr>
1235 | <tr>
1236 | <td>
1237 | 
1238 | <a id="question-1"></a> `question`
1239 | 
1240 | </td>
1241 | <td>
1242 | 
1243 | `string`
1244 | 
1245 | </td>
1246 | </tr>
1247 | <tr>
1248 | <td>
1249 | 
1250 | <a id="score-1"></a> `score`
1251 | 
1252 | </td>
1253 | <td>
1254 | 
1255 | `number`
1256 | 
1257 | </td>
1258 | </tr>
1259 | </tbody>
1260 | </table>
1261 | 
1262 | ***
1263 | 
1264 | ### Flag
1265 | 
1266 | Represents a flag.
1267 | 
1268 | #### Properties
1269 | 
1270 | <table>
1271 | <thead>
1272 | <tr>
1273 | <th>Property</th>
1274 | <th>Type</th>
1275 | <th>Description</th>
1276 | </tr>
1277 | </thead>
1278 | <tbody>
1279 | <tr>
1280 | <td>
1281 | 
1282 | <a id="config-1"></a> `config`
1283 | 
1284 | </td>
1285 | <td>
1286 | 
1287 | [`FlagRemoteConfig`](globals.md#flagremoteconfig)
1288 | 
1289 | </td>
1290 | <td>
1291 | 
1292 | &hyphen;
1293 | 
1294 | </td>
1295 | </tr>
1296 | <tr>
1297 | <td>
1298 | 
1299 | <a id="isenabled"></a> `isEnabled`
1300 | 
1301 | </td>
1302 | <td>
1303 | 
1304 | `boolean`
1305 | 
1306 | </td>
1307 | <td>
1308 | 
1309 | Result of flag flag evaluation.
1310 | Note: Does not take local overrides into account.
1311 | 
1312 | </td>
1313 | </tr>
1314 | <tr>
1315 | <td>
1316 | 
1317 | <a id="isenabledoverride"></a> `isEnabledOverride`
1318 | 
1319 | </td>
1320 | <td>
1321 | 
1322 | `null` \| `boolean`
1323 | 
1324 | </td>
1325 | <td>
1326 | 
1327 | The current override status of isEnabled for the flag.
1328 | 
1329 | </td>
1330 | </tr>
1331 | <tr>
1332 | <td>
1333 | 
1334 | <a id="requestfeedback-1"></a> `requestFeedback`
1335 | 
1336 | </td>
1337 | <td>
1338 | 
1339 | (`options`: [`Omit`](https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys)\<[`RequestFeedbackData`](globals.md#requestfeedbackdata), `"featureId"` \| `"flagKey"`\>) => `void`
1340 | 
1341 | </td>
1342 | <td>
1343 | 
1344 | Function to request feedback for this flag.
1345 | 
1346 | </td>
1347 | </tr>
1348 | <tr>
1349 | <td>
1350 | 
1351 | <a id="track-1"></a> `track`
1352 | 
1353 | </td>
1354 | <td>
1355 | 
1356 | () => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\< \| `undefined` \| [`Response`](https://developer.mozilla.org/docs/Web/API/Response)\>
1357 | 
1358 | </td>
1359 | <td>
1360 | 
1361 | Function to send analytics events for this flag.
1362 | 
1363 | </td>
1364 | </tr>
1365 | </tbody>
1366 | </table>
1367 | 
1368 | #### Methods
1369 | 
1370 | ##### setIsEnabledOverride()
1371 | 
1372 | ```ts
1373 | setIsEnabledOverride(isEnabled: null | boolean): void
1374 | ```
1375 | 
1376 | Set the override status for isEnabled for the flag.
1377 | Set to `null` to remove the override.
1378 | 
1379 | ###### Parameters
1380 | 
1381 | <table>
1382 | <thead>
1383 | <tr>
1384 | <th>Parameter</th>
1385 | <th>Type</th>
1386 | </tr>
1387 | </thead>
1388 | <tbody>
1389 | <tr>
1390 | <td>
1391 | 
1392 | `isEnabled`
1393 | 
1394 | </td>
1395 | <td>
1396 | 
1397 | `null` \| `boolean`
1398 | 
1399 | </td>
1400 | </tr>
1401 | </tbody>
1402 | </table>
1403 | 
1404 | ###### Returns
1405 | 
1406 | `void`
1407 | 
1408 | ***
1409 | 
1410 | ### HookArgs
1411 | 
1412 | #### Properties
1413 | 
1414 | <table>
1415 | <thead>
1416 | <tr>
1417 | <th>Property</th>
1418 | <th>Type</th>
1419 | <th>Description</th>
1420 | </tr>
1421 | </thead>
1422 | <tbody>
1423 | <tr>
1424 | <td>
1425 | 
1426 | <a id="check"></a> `check`
1427 | 
1428 | </td>
1429 | <td>
1430 | 
1431 | [`CheckEvent`](globals.md#checkevent)
1432 | 
1433 | </td>
1434 | <td>
1435 | 
1436 | &hyphen;
1437 | 
1438 | </td>
1439 | </tr>
1440 | <tr>
1441 | <td>
1442 | 
1443 | <a id="company"></a> `company`
1444 | 
1445 | </td>
1446 | <td>
1447 | 
1448 | [`CompanyContext`](globals.md#companycontext)
1449 | 
1450 | </td>
1451 | <td>
1452 | 
1453 | &hyphen;
1454 | 
1455 | </td>
1456 | </tr>
1457 | <tr>
1458 | <td>
1459 | 
1460 | <a id="featuresupdated"></a> ~~`featuresUpdated`~~
1461 | 
1462 | </td>
1463 | <td>
1464 | 
1465 | [`RawFlags`](globals.md#rawflags)
1466 | 
1467 | </td>
1468 | <td>
1469 | 
1470 | **Deprecated**
1471 | 
1472 | Use `flagsUpdated` instead.
1473 | 
1474 | </td>
1475 | </tr>
1476 | <tr>
1477 | <td>
1478 | 
1479 | <a id="flagsupdated"></a> `flagsUpdated`
1480 | 
1481 | </td>
1482 | <td>
1483 | 
1484 | [`RawFlags`](globals.md#rawflags)
1485 | 
1486 | </td>
1487 | <td>
1488 | 
1489 | &hyphen;
1490 | 
1491 | </td>
1492 | </tr>
1493 | <tr>
1494 | <td>
1495 | 
1496 | <a id="stateupdated"></a> `stateUpdated`
1497 | 
1498 | </td>
1499 | <td>
1500 | 
1501 | [`State`](globals.md#state)
1502 | 
1503 | </td>
1504 | <td>
1505 | 
1506 | &hyphen;
1507 | 
1508 | </td>
1509 | </tr>
1510 | <tr>
1511 | <td>
1512 | 
1513 | <a id="track-2"></a> `track`
1514 | 
1515 | </td>
1516 | <td>
1517 | 
1518 | [`TrackEvent`](globals.md#trackevent)
1519 | 
1520 | </td>
1521 | <td>
1522 | 
1523 | &hyphen;
1524 | 
1525 | </td>
1526 | </tr>
1527 | <tr>
1528 | <td>
1529 | 
1530 | <a id="user"></a> `user`
1531 | 
1532 | </td>
1533 | <td>
1534 | 
1535 | [`UserContext`](globals.md#usercontext)
1536 | 
1537 | </td>
1538 | <td>
1539 | 
1540 | &hyphen;
1541 | 
1542 | </td>
1543 | </tr>
1544 | </tbody>
1545 | </table>
1546 | 
1547 | ***
1548 | 
1549 | ### Logger
1550 | 
1551 | #### Methods
1552 | 
1553 | ##### debug()
1554 | 
1555 | ```ts
1556 | debug(message: string, ...args: any[]): void
1557 | ```
1558 | 
1559 | ###### Parameters
1560 | 
1561 | <table>
1562 | <thead>
1563 | <tr>
1564 | <th>Parameter</th>
1565 | <th>Type</th>
1566 | </tr>
1567 | </thead>
1568 | <tbody>
1569 | <tr>
1570 | <td>
1571 | 
1572 | `message`
1573 | 
1574 | </td>
1575 | <td>
1576 | 
1577 | `string`
1578 | 
1579 | </td>
1580 | </tr>
1581 | <tr>
1582 | <td>
1583 | 
1584 | ...`args`
1585 | 
1586 | </td>
1587 | <td>
1588 | 
1589 | `any`[]
1590 | 
1591 | </td>
1592 | </tr>
1593 | </tbody>
1594 | </table>
1595 | 
1596 | ###### Returns
1597 | 
1598 | `void`
1599 | 
1600 | ##### error()
1601 | 
1602 | ```ts
1603 | error(message: string, ...args: any[]): void
1604 | ```
1605 | 
1606 | ###### Parameters
1607 | 
1608 | <table>
1609 | <thead>
1610 | <tr>
1611 | <th>Parameter</th>
1612 | <th>Type</th>
1613 | </tr>
1614 | </thead>
1615 | <tbody>
1616 | <tr>
1617 | <td>
1618 | 
1619 | `message`
1620 | 
1621 | </td>
1622 | <td>
1623 | 
1624 | `string`
1625 | 
1626 | </td>
1627 | </tr>
1628 | <tr>
1629 | <td>
1630 | 
1631 | ...`args`
1632 | 
1633 | </td>
1634 | <td>
1635 | 
1636 | `any`[]
1637 | 
1638 | </td>
1639 | </tr>
1640 | </tbody>
1641 | </table>
1642 | 
1643 | ###### Returns
1644 | 
1645 | `void`
1646 | 
1647 | ##### info()
1648 | 
1649 | ```ts
1650 | info(message: string, ...args: any[]): void
1651 | ```
1652 | 
1653 | ###### Parameters
1654 | 
1655 | <table>
1656 | <thead>
1657 | <tr>
1658 | <th>Parameter</th>
1659 | <th>Type</th>
1660 | </tr>
1661 | </thead>
1662 | <tbody>
1663 | <tr>
1664 | <td>
1665 | 
1666 | `message`
1667 | 
1668 | </td>
1669 | <td>
1670 | 
1671 | `string`
1672 | 
1673 | </td>
1674 | </tr>
1675 | <tr>
1676 | <td>
1677 | 
1678 | ...`args`
1679 | 
1680 | </td>
1681 | <td>
1682 | 
1683 | `any`[]
1684 | 
1685 | </td>
1686 | </tr>
1687 | </tbody>
1688 | </table>
1689 | 
1690 | ###### Returns
1691 | 
1692 | `void`
1693 | 
1694 | ##### warn()
1695 | 
1696 | ```ts
1697 | warn(message: string, ...args: any[]): void
1698 | ```
1699 | 
1700 | ###### Parameters
1701 | 
1702 | <table>
1703 | <thead>
1704 | <tr>
1705 | <th>Parameter</th>
1706 | <th>Type</th>
1707 | </tr>
1708 | </thead>
1709 | <tbody>
1710 | <tr>
1711 | <td>
1712 | 
1713 | `message`
1714 | 
1715 | </td>
1716 | <td>
1717 | 
1718 | `string`
1719 | 
1720 | </td>
1721 | </tr>
1722 | <tr>
1723 | <td>
1724 | 
1725 | ...`args`
1726 | 
1727 | </td>
1728 | <td>
1729 | 
1730 | `any`[]
1731 | 
1732 | </td>
1733 | </tr>
1734 | </tbody>
1735 | </table>
1736 | 
1737 | ###### Returns
1738 | 
1739 | `void`
1740 | 
1741 | ***
1742 | 
1743 | ### OnScoreSubmitResult
1744 | 
1745 | #### Properties
1746 | 
1747 | <table>
1748 | <thead>
1749 | <tr>
1750 | <th>Property</th>
1751 | <th>Type</th>
1752 | </tr>
1753 | </thead>
1754 | <tbody>
1755 | <tr>
1756 | <td>
1757 | 
1758 | <a id="feedbackid-2"></a> `feedbackId`
1759 | 
1760 | </td>
1761 | <td>
1762 | 
1763 | `string`
1764 | 
1765 | </td>
1766 | </tr>
1767 | </tbody>
1768 | </table>
1769 | 
1770 | ***
1771 | 
1772 | ### OpenFeedbackFormOptions
1773 | 
1774 | #### Properties
1775 | 
1776 | <table>
1777 | <thead>
1778 | <tr>
1779 | <th>Property</th>
1780 | <th>Type</th>
1781 | <th>Description</th>
1782 | </tr>
1783 | </thead>
1784 | <tbody>
1785 | <tr>
1786 | <td>
1787 | 
1788 | <a id="key-1"></a> `key`
1789 | 
1790 | </td>
1791 | <td>
1792 | 
1793 | `string`
1794 | 
1795 | </td>
1796 | <td>
1797 | 
1798 | &hyphen;
1799 | 
1800 | </td>
1801 | </tr>
1802 | <tr>
1803 | <td>
1804 | 
1805 | <a id="onclose"></a> `onClose?`
1806 | 
1807 | </td>
1808 | <td>
1809 | 
1810 | () => `void`
1811 | 
1812 | </td>
1813 | <td>
1814 | 
1815 | &hyphen;
1816 | 
1817 | </td>
1818 | </tr>
1819 | <tr>
1820 | <td>
1821 | 
1822 | <a id="ondismiss"></a> `onDismiss?`
1823 | 
1824 | </td>
1825 | <td>
1826 | 
1827 | () => `void`
1828 | 
1829 | </td>
1830 | <td>
1831 | 
1832 | &hyphen;
1833 | 
1834 | </td>
1835 | </tr>
1836 | <tr>
1837 | <td>
1838 | 
1839 | <a id="onscoresubmit"></a> `onScoreSubmit?`
1840 | 
1841 | </td>
1842 | <td>
1843 | 
1844 | (`data`: [`FeedbackScoreSubmission`](globals.md#feedbackscoresubmission)) => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`OnScoreSubmitResult`](globals.md#onscoresubmitresult)\>
1845 | 
1846 | </td>
1847 | <td>
1848 | 
1849 | &hyphen;
1850 | 
1851 | </td>
1852 | </tr>
1853 | <tr>
1854 | <td>
1855 | 
1856 | <a id="onsubmit"></a> `onSubmit`
1857 | 
1858 | </td>
1859 | <td>
1860 | 
1861 | (`data`: [`FeedbackSubmission`](globals.md#feedbacksubmission)) => \| `void` \| [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\>
1862 | 
1863 | </td>
1864 | <td>
1865 | 
1866 | &hyphen;
1867 | 
1868 | </td>
1869 | </tr>
1870 | <tr>
1871 | <td>
1872 | 
1873 | <a id="openwithcommentvisible"></a> `openWithCommentVisible?`
1874 | 
1875 | </td>
1876 | <td>
1877 | 
1878 | `boolean`
1879 | 
1880 | </td>
1881 | <td>
1882 | 
1883 | Open the form with both the score and comment fields visible.
1884 | Defaults to `false`
1885 | 
1886 | </td>
1887 | </tr>
1888 | <tr>
1889 | <td>
1890 | 
1891 | <a id="position"></a> `position?`
1892 | 
1893 | </td>
1894 | <td>
1895 | 
1896 | [`Position`](globals.md#position-1)
1897 | 
1898 | </td>
1899 | <td>
1900 | 
1901 | Control the placement and behavior of the feedback form.
1902 | 
1903 | </td>
1904 | </tr>
1905 | <tr>
1906 | <td>
1907 | 
1908 | <a id="title"></a> `title?`
1909 | 
1910 | </td>
1911 | <td>
1912 | 
1913 | `string`
1914 | 
1915 | </td>
1916 | <td>
1917 | 
1918 | &hyphen;
1919 | 
1920 | </td>
1921 | </tr>
1922 | <tr>
1923 | <td>
1924 | 
1925 | <a id="translations"></a> `translations?`
1926 | 
1927 | </td>
1928 | <td>
1929 | 
1930 | [`Partial`](https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype)\<[`FeedbackTranslations`](globals.md#feedbacktranslations)\>
1931 | 
1932 | </td>
1933 | <td>
1934 | 
1935 | Add your own custom translations for the feedback form.
1936 | Undefined translation keys fall back to english defaults.
1937 | 
1938 | </td>
1939 | </tr>
1940 | </tbody>
1941 | </table>
1942 | 
1943 | ***
1944 | 
1945 | ### ReflagContext
1946 | 
1947 | Context is a set of key-value pairs.
1948 | This is used to determine if feature targeting matches and to track events.
1949 | 
1950 | #### Extended by
1951 | 
1952 | - [`ReflagDeprecatedContext`](globals.md#reflagdeprecatedcontext)
1953 | 
1954 | #### Properties
1955 | 
1956 | <table>
1957 | <thead>
1958 | <tr>
1959 | <th>Property</th>
1960 | <th>Type</th>
1961 | <th>Description</th>
1962 | </tr>
1963 | </thead>
1964 | <tbody>
1965 | <tr>
1966 | <td>
1967 | 
1968 | <a id="company-1"></a> `company?`
1969 | 
1970 | </td>
1971 | <td>
1972 | 
1973 | [`CompanyContext`](globals.md#companycontext)
1974 | 
1975 | </td>
1976 | <td>
1977 | 
1978 | Company related context. If you provide `id` Reflag will enrich the evaluation context with
1979 | company attributes on Reflag servers.
1980 | 
1981 | </td>
1982 | </tr>
1983 | <tr>
1984 | <td>
1985 | 
1986 | <a id="other"></a> `other?`
1987 | 
1988 | </td>
1989 | <td>
1990 | 
1991 | [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `undefined` \| `string` \| `number`\>
1992 | 
1993 | </td>
1994 | <td>
1995 | 
1996 | Context which is not related to a user or a company.
1997 | 
1998 | </td>
1999 | </tr>
2000 | <tr>
2001 | <td>
2002 | 
2003 | <a id="user-1"></a> `user?`
2004 | 
2005 | </td>
2006 | <td>
2007 | 
2008 | [`UserContext`](globals.md#usercontext)
2009 | 
2010 | </td>
2011 | <td>
2012 | 
2013 | User related context. If you provide `id` Reflag will enrich the evaluation context with
2014 | user attributes on Reflag servers.
2015 | 
2016 | </td>
2017 | </tr>
2018 | </tbody>
2019 | </table>
2020 | 
2021 | ***
2022 | 
2023 | ### ~~ReflagDeprecatedContext~~
2024 | 
2025 | **`Internal`**
2026 | 
2027 | #### Deprecated
2028 | 
2029 | Use `ReflagContext` instead, this interface will be removed in the next major version
2030 | 
2031 | #### Extends
2032 | 
2033 | - [`ReflagContext`](globals.md#reflagcontext)
2034 | 
2035 | #### Properties
2036 | 
2037 | <table>
2038 | <thead>
2039 | <tr>
2040 | <th>Property</th>
2041 | <th>Type</th>
2042 | <th>Description</th>
2043 | </tr>
2044 | </thead>
2045 | <tbody>
2046 | <tr>
2047 | <td>
2048 | 
2049 | <a id="company-2"></a> ~~`company?`~~
2050 | 
2051 | </td>
2052 | <td>
2053 | 
2054 | [`CompanyContext`](globals.md#companycontext)
2055 | 
2056 | </td>
2057 | <td>
2058 | 
2059 | Company related context. If you provide `id` Reflag will enrich the evaluation context with
2060 | company attributes on Reflag servers.
2061 | 
2062 | </td>
2063 | </tr>
2064 | <tr>
2065 | <td>
2066 | 
2067 | <a id="other-1"></a> ~~`other?`~~
2068 | 
2069 | </td>
2070 | <td>
2071 | 
2072 | [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `undefined` \| `string` \| `number`\>
2073 | 
2074 | </td>
2075 | <td>
2076 | 
2077 | Context which is not related to a user or a company.
2078 | 
2079 | </td>
2080 | </tr>
2081 | <tr>
2082 | <td>
2083 | 
2084 | <a id="othercontext"></a> ~~`otherContext?`~~
2085 | 
2086 | </td>
2087 | <td>
2088 | 
2089 | [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `undefined` \| `string` \| `number`\>
2090 | 
2091 | </td>
2092 | <td>
2093 | 
2094 | Context which is not related to a user or a company.
2095 | 
2096 | **Deprecated**
2097 | 
2098 | Use `other` instead, this property will be removed in the next major version
2099 | 
2100 | </td>
2101 | </tr>
2102 | <tr>
2103 | <td>
2104 | 
2105 | <a id="user-2"></a> ~~`user?`~~
2106 | 
2107 | </td>
2108 | <td>
2109 | 
2110 | [`UserContext`](globals.md#usercontext)
2111 | 
2112 | </td>
2113 | <td>
2114 | 
2115 | User related context. If you provide `id` Reflag will enrich the evaluation context with
2116 | user attributes on Reflag servers.
2117 | 
2118 | </td>
2119 | </tr>
2120 | </tbody>
2121 | </table>
2122 | 
2123 | ***
2124 | 
2125 | ### ToolbarPosition
2126 | 
2127 | #### Properties
2128 | 
2129 | <table>
2130 | <thead>
2131 | <tr>
2132 | <th>Property</th>
2133 | <th>Type</th>
2134 | </tr>
2135 | </thead>
2136 | <tbody>
2137 | <tr>
2138 | <td>
2139 | 
2140 | <a id="offset"></a> `offset?`
2141 | 
2142 | </td>
2143 | <td>
2144 | 
2145 | [`Offset`](globals.md#offset-1)
2146 | 
2147 | </td>
2148 | </tr>
2149 | <tr>
2150 | <td>
2151 | 
2152 | <a id="placement"></a> `placement`
2153 | 
2154 | </td>
2155 | <td>
2156 | 
2157 | [`DialogPlacement`](globals.md#dialogplacement)
2158 | 
2159 | </td>
2160 | </tr>
2161 | </tbody>
2162 | </table>
2163 | 
2164 | ***
2165 | 
2166 | ### UserContext
2167 | 
2168 | Context is a set of key-value pairs.
2169 | This is used to determine if feature targeting matches and to track events.
2170 | Id should always be present so that it can be referenced to an existing user.
2171 | 
2172 | #### Indexable
2173 | 
2174 | ```ts
2175 | [key: string]: undefined | string | number
2176 | ```
2177 | 
2178 | #### Properties
2179 | 
2180 | <table>
2181 | <thead>
2182 | <tr>
2183 | <th>Property</th>
2184 | <th>Type</th>
2185 | <th>Description</th>
2186 | </tr>
2187 | </thead>
2188 | <tbody>
2189 | <tr>
2190 | <td>
2191 | 
2192 | <a id="email"></a> `email?`
2193 | 
2194 | </td>
2195 | <td>
2196 | 
2197 | `string`
2198 | 
2199 | </td>
2200 | <td>
2201 | 
2202 | User email
2203 | 
2204 | </td>
2205 | </tr>
2206 | <tr>
2207 | <td>
2208 | 
2209 | <a id="id-1"></a> `id`
2210 | 
2211 | </td>
2212 | <td>
2213 | 
2214 | `undefined` \| `string` \| `number`
2215 | 
2216 | </td>
2217 | <td>
2218 | 
2219 | User id
2220 | 
2221 | </td>
2222 | </tr>
2223 | <tr>
2224 | <td>
2225 | 
2226 | <a id="name-1"></a> `name?`
2227 | 
2228 | </td>
2229 | <td>
2230 | 
2231 | `string`
2232 | 
2233 | </td>
2234 | <td>
2235 | 
2236 | User name
2237 | 
2238 | </td>
2239 | </tr>
2240 | </tbody>
2241 | </table>
2242 | 
2243 | ## Type Aliases
2244 | 
2245 | ### DialogPlacement
2246 | 
2247 | ```ts
2248 | type DialogPlacement = "bottom-right" | "bottom-left" | "top-right" | "top-left";
2249 | ```
2250 | 
2251 | ***
2252 | 
2253 | ### FallbackFlagOverride
2254 | 
2255 | ```ts
2256 | type FallbackFlagOverride = 
2257 |   | {
2258 |   key: string;
2259 |   payload: any;
2260 |  }
2261 |   | true;
2262 | ```
2263 | 
2264 | ***
2265 | 
2266 | ### Feedback
2267 | 
2268 | ```ts
2269 | type Feedback = UnassignedFeedback & {
2270 |   companyId: string;
2271 |   userId: string;
2272 | };
2273 | ```
2274 | 
2275 | #### Type declaration
2276 | 
2277 | <table>
2278 | <thead>
2279 | <tr>
2280 | <th>Name</th>
2281 | <th>Type</th>
2282 | <th>Description</th>
2283 | </tr>
2284 | </thead>
2285 | <tbody>
2286 | <tr>
2287 | <td>
2288 | 
2289 | `companyId`?
2290 | 
2291 | </td>
2292 | <td>
2293 | 
2294 | `string`
2295 | 
2296 | </td>
2297 | <td>
2298 | 
2299 | Company ID from your own application.
2300 | 
2301 | </td>
2302 | </tr>
2303 | <tr>
2304 | <td>
2305 | 
2306 | `userId`?
2307 | 
2308 | </td>
2309 | <td>
2310 | 
2311 | `string`
2312 | 
2313 | </td>
2314 | <td>
2315 | 
2316 | User ID from your own application.
2317 | 
2318 | </td>
2319 | </tr>
2320 | </tbody>
2321 | </table>
2322 | 
2323 | ***
2324 | 
2325 | ### FeedbackOptions
2326 | 
2327 | ```ts
2328 | type FeedbackOptions = {
2329 |   autoFeedbackHandler: FeedbackPromptHandler;
2330 |   enableAutoFeedback: boolean;
2331 |   ui: {
2332 |      position: Position;
2333 |      translations: Partial<FeedbackTranslations>;
2334 |     };
2335 | };
2336 | ```
2337 | 
2338 | #### Type declaration
2339 | 
2340 | <table>
2341 | <thead>
2342 | <tr>
2343 | <th>Name</th>
2344 | <th>Type</th>
2345 | <th>Description</th>
2346 | </tr>
2347 | </thead>
2348 | <tbody>
2349 | <tr>
2350 | <td>
2351 | 
2352 | <a id="autofeedbackhandler"></a> `autoFeedbackHandler`?
2353 | 
2354 | </td>
2355 | <td>
2356 | 
2357 | [`FeedbackPromptHandler`](globals.md#feedbackprompthandler)
2358 | 
2359 | </td>
2360 | <td>
2361 | 
2362 | &hyphen;
2363 | 
2364 | </td>
2365 | </tr>
2366 | <tr>
2367 | <td>
2368 | 
2369 | <a id="enableautofeedback"></a> `enableAutoFeedback`?
2370 | 
2371 | </td>
2372 | <td>
2373 | 
2374 | `boolean`
2375 | 
2376 | </td>
2377 | <td>
2378 | 
2379 | Enables automatic feedback prompting if it's set up in Reflag
2380 | 
2381 | </td>
2382 | </tr>
2383 | <tr>
2384 | <td>
2385 | 
2386 | <a id="ui"></a> `ui`?
2387 | 
2388 | </td>
2389 | <td>
2390 | 
2391 | \{
2392 |   `position`: [`Position`](globals.md#position-1);
2393 |   `translations`: [`Partial`](https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype)\<[`FeedbackTranslations`](globals.md#feedbacktranslations)\>;
2394 |  \}
2395 | 
2396 | </td>
2397 | <td>
2398 | 
2399 | With these options you can override the look of the feedback prompt
2400 | 
2401 | </td>
2402 | </tr>
2403 | <tr>
2404 | <td>
2405 | 
2406 | `ui.position`?
2407 | 
2408 | </td>
2409 | <td>
2410 | 
2411 | [`Position`](globals.md#position-1)
2412 | 
2413 | </td>
2414 | <td>
2415 | 
2416 | Control the placement and behavior of the feedback form.
2417 | 
2418 | </td>
2419 | </tr>
2420 | <tr>
2421 | <td>
2422 | 
2423 | `ui.translations`?
2424 | 
2425 | </td>
2426 | <td>
2427 | 
2428 | [`Partial`](https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype)\<[`FeedbackTranslations`](globals.md#feedbacktranslations)\>
2429 | 
2430 | </td>
2431 | <td>
2432 | 
2433 | Add your own custom translations for the feedback form.
2434 | Undefined translation keys fall back to english defaults.
2435 | 
2436 | </td>
2437 | </tr>
2438 | </tbody>
2439 | </table>
2440 | 
2441 | ***
2442 | 
2443 | ### FeedbackPrompt
2444 | 
2445 | ```ts
2446 | type FeedbackPrompt = {
2447 |   featureId: string;
2448 |   promptId: string;
2449 |   question: string;
2450 |   showAfter: Date;
2451 |   showBefore: Date;
2452 | };
2453 | ```
2454 | 
2455 | #### Type declaration
2456 | 
2457 | <table>
2458 | <thead>
2459 | <tr>
2460 | <th>Name</th>
2461 | <th>Type</th>
2462 | <th>Description</th>
2463 | </tr>
2464 | </thead>
2465 | <tbody>
2466 | <tr>
2467 | <td>
2468 | 
2469 | <a id="featureid"></a> `featureId`
2470 | 
2471 | </td>
2472 | <td>
2473 | 
2474 | `string`
2475 | 
2476 | </td>
2477 | <td>
2478 | 
2479 | Feature ID from Reflag
2480 | 
2481 | </td>
2482 | </tr>
2483 | <tr>
2484 | <td>
2485 | 
2486 | <a id="promptid"></a> `promptId`
2487 | 
2488 | </td>
2489 | <td>
2490 | 
2491 | `string`
2492 | 
2493 | </td>
2494 | <td>
2495 | 
2496 | Id of the prompt
2497 | 
2498 | </td>
2499 | </tr>
2500 | <tr>
2501 | <td>
2502 | 
2503 | <a id="question-2"></a> `question`
2504 | 
2505 | </td>
2506 | <td>
2507 | 
2508 | `string`
2509 | 
2510 | </td>
2511 | <td>
2512 | 
2513 | Specific question user was asked
2514 | 
2515 | </td>
2516 | </tr>
2517 | <tr>
2518 | <td>
2519 | 
2520 | <a id="showafter"></a> `showAfter`
2521 | 
2522 | </td>
2523 | <td>
2524 | 
2525 | [`Date`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date)
2526 | 
2527 | </td>
2528 | <td>
2529 | 
2530 | Feedback prompt should appear only after this time
2531 | 
2532 | </td>
2533 | </tr>
2534 | <tr>
2535 | <td>
2536 | 
2537 | <a id="showbefore"></a> `showBefore`
2538 | 
2539 | </td>
2540 | <td>
2541 | 
2542 | [`Date`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date)
2543 | 
2544 | </td>
2545 | <td>
2546 | 
2547 | Feedback prompt will not be shown after this time
2548 | 
2549 | </td>
2550 | </tr>
2551 | </tbody>
2552 | </table>
2553 | 
2554 | ***
2555 | 
2556 | ### FeedbackPromptHandler()
2557 | 
2558 | ```ts
2559 | type FeedbackPromptHandler = (prompt: FeedbackPrompt, handlers: FeedbackPromptHandlerCallbacks) => void;
2560 | ```
2561 | 
2562 | #### Parameters
2563 | 
2564 | <table>
2565 | <thead>
2566 | <tr>
2567 | <th>Parameter</th>
2568 | <th>Type</th>
2569 | </tr>
2570 | </thead>
2571 | <tbody>
2572 | <tr>
2573 | <td>
2574 | 
2575 | `prompt`
2576 | 
2577 | </td>
2578 | <td>
2579 | 
2580 | [`FeedbackPrompt`](globals.md#feedbackprompt)
2581 | 
2582 | </td>
2583 | </tr>
2584 | <tr>
2585 | <td>
2586 | 
2587 | `handlers`
2588 | 
2589 | </td>
2590 | <td>
2591 | 
2592 | [`FeedbackPromptHandlerCallbacks`](globals.md#feedbackprompthandlercallbacks)
2593 | 
2594 | </td>
2595 | </tr>
2596 | </tbody>
2597 | </table>
2598 | 
2599 | #### Returns
2600 | 
2601 | `void`
2602 | 
2603 | ***
2604 | 
2605 | ### FeedbackPromptHandlerCallbacks
2606 | 
2607 | ```ts
2608 | type FeedbackPromptHandlerCallbacks = {
2609 |   openFeedbackForm: (options: FeedbackPromptHandlerOpenFeedbackFormOptions) => void;
2610 |   reply: FeedbackPromptReplyHandler;
2611 | };
2612 | ```
2613 | 
2614 | #### Type declaration
2615 | 
2616 | <table>
2617 | <thead>
2618 | <tr>
2619 | <th>Name</th>
2620 | <th>Type</th>
2621 | </tr>
2622 | </thead>
2623 | <tbody>
2624 | <tr>
2625 | <td>
2626 | 
2627 | <a id="openfeedbackform"></a> `openFeedbackForm`
2628 | 
2629 | </td>
2630 | <td>
2631 | 
2632 | (`options`: [`FeedbackPromptHandlerOpenFeedbackFormOptions`](globals.md#feedbackprompthandleropenfeedbackformoptions)) => `void`
2633 | 
2634 | </td>
2635 | </tr>
2636 | <tr>
2637 | <td>
2638 | 
2639 | <a id="reply"></a> `reply`
2640 | 
2641 | </td>
2642 | <td>
2643 | 
2644 | [`FeedbackPromptReplyHandler`](globals.md#feedbackpromptreplyhandler)
2645 | 
2646 | </td>
2647 | </tr>
2648 | </tbody>
2649 | </table>
2650 | 
2651 | ***
2652 | 
2653 | ### FeedbackPromptHandlerOpenFeedbackFormOptions
2654 | 
2655 | ```ts
2656 | type FeedbackPromptHandlerOpenFeedbackFormOptions = Omit<RequestFeedbackOptions, 
2657 |   | "featureId"
2658 |   | "flagKey"
2659 |   | "userId"
2660 |   | "companyId"
2661 |   | "onClose"
2662 | | "onDismiss">;
2663 | ```
2664 | 
2665 | ***
2666 | 
2667 | ### FeedbackPromptReply
2668 | 
2669 | ```ts
2670 | type FeedbackPromptReply = {
2671 |   comment: string;
2672 |   companyId: string;
2673 |   question: string;
2674 |   score: number;
2675 | };
2676 | ```
2677 | 
2678 | #### Type declaration
2679 | 
2680 | <table>
2681 | <thead>
2682 | <tr>
2683 | <th>Name</th>
2684 | <th>Type</th>
2685 | </tr>
2686 | </thead>
2687 | <tbody>
2688 | <tr>
2689 | <td>
2690 | 
2691 | <a id="comment-1"></a> `comment`?
2692 | 
2693 | </td>
2694 | <td>
2695 | 
2696 | `string`
2697 | 
2698 | </td>
2699 | </tr>
2700 | <tr>
2701 | <td>
2702 | 
2703 | <a id="companyid"></a> `companyId`?
2704 | 
2705 | </td>
2706 | <td>
2707 | 
2708 | `string`
2709 | 
2710 | </td>
2711 | </tr>
2712 | <tr>
2713 | <td>
2714 | 
2715 | <a id="question-3"></a> `question`
2716 | 
2717 | </td>
2718 | <td>
2719 | 
2720 | `string`
2721 | 
2722 | </td>
2723 | </tr>
2724 | <tr>
2725 | <td>
2726 | 
2727 | <a id="score-2"></a> `score`?
2728 | 
2729 | </td>
2730 | <td>
2731 | 
2732 | `number`
2733 | 
2734 | </td>
2735 | </tr>
2736 | </tbody>
2737 | </table>
2738 | 
2739 | ***
2740 | 
2741 | ### FeedbackPromptReplyHandler()
2742 | 
2743 | ```ts
2744 | type FeedbackPromptReplyHandler = <T>(reply: T) => T extends null ? Promise<void> : Promise<{
2745 |   feedbackId: string;
2746 | }>;
2747 | ```
2748 | 
2749 | #### Type Parameters
2750 | 
2751 | <table>
2752 | <thead>
2753 | <tr>
2754 | <th>Type Parameter</th>
2755 | </tr>
2756 | </thead>
2757 | <tbody>
2758 | <tr>
2759 | <td>
2760 | 
2761 | `T` *extends* [`FeedbackPromptReply`](globals.md#feedbackpromptreply) \| `null`
2762 | 
2763 | </td>
2764 | </tr>
2765 | </tbody>
2766 | </table>
2767 | 
2768 | #### Parameters
2769 | 
2770 | <table>
2771 | <thead>
2772 | <tr>
2773 | <th>Parameter</th>
2774 | <th>Type</th>
2775 | </tr>
2776 | </thead>
2777 | <tbody>
2778 | <tr>
2779 | <td>
2780 | 
2781 | `reply`
2782 | 
2783 | </td>
2784 | <td>
2785 | 
2786 | `T`
2787 | 
2788 | </td>
2789 | </tr>
2790 | </tbody>
2791 | </table>
2792 | 
2793 | #### Returns
2794 | 
2795 | `T` *extends* `null` ? [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`void`\> : [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<\{
2796 |   `feedbackId`: `string`;
2797 |  \}\>
2798 | 
2799 | ***
2800 | 
2801 | ### FeedbackTranslations
2802 | 
2803 | ```ts
2804 | type FeedbackTranslations = {
2805 |   DefaultQuestionLabel: string;
2806 |   QuestionPlaceholder: string;
2807 |   ScoreDissatisfiedLabel: string;
2808 |   ScoreNeutralLabel: string;
2809 |   ScoreSatisfiedLabel: string;
2810 |   ScoreStatusDescription: string;
2811 |   ScoreStatusLoading: string;
2812 |   ScoreStatusReceived: string;
2813 |   ScoreVeryDissatisfiedLabel: string;
2814 |   ScoreVerySatisfiedLabel: string;
2815 |   SendButton: string;
2816 |   SuccessMessage: string;
2817 | };
2818 | ```
2819 | 
2820 | You can use this to override text values in the feedback form
2821 | with desired language translation
2822 | 
2823 | #### Type declaration
2824 | 
2825 | <table>
2826 | <thead>
2827 | <tr>
2828 | <th>Name</th>
2829 | <th>Type</th>
2830 | </tr>
2831 | </thead>
2832 | <tbody>
2833 | <tr>
2834 | <td>
2835 | 
2836 | <a id="defaultquestionlabel"></a> `DefaultQuestionLabel`
2837 | 
2838 | </td>
2839 | <td>
2840 | 
2841 | `string`
2842 | 
2843 | </td>
2844 | </tr>
2845 | <tr>
2846 | <td>
2847 | 
2848 | <a id="questionplaceholder"></a> `QuestionPlaceholder`
2849 | 
2850 | </td>
2851 | <td>
2852 | 
2853 | `string`
2854 | 
2855 | </td>
2856 | </tr>
2857 | <tr>
2858 | <td>
2859 | 
2860 | <a id="scoredissatisfiedlabel"></a> `ScoreDissatisfiedLabel`
2861 | 
2862 | </td>
2863 | <td>
2864 | 
2865 | `string`
2866 | 
2867 | </td>
2868 | </tr>
2869 | <tr>
2870 | <td>
2871 | 
2872 | <a id="scoreneutrallabel"></a> `ScoreNeutralLabel`
2873 | 
2874 | </td>
2875 | <td>
2876 | 
2877 | `string`
2878 | 
2879 | </td>
2880 | </tr>
2881 | <tr>
2882 | <td>
2883 | 
2884 | <a id="scoresatisfiedlabel"></a> `ScoreSatisfiedLabel`
2885 | 
2886 | </td>
2887 | <td>
2888 | 
2889 | `string`
2890 | 
2891 | </td>
2892 | </tr>
2893 | <tr>
2894 | <td>
2895 | 
2896 | <a id="scorestatusdescription"></a> `ScoreStatusDescription`
2897 | 
2898 | </td>
2899 | <td>
2900 | 
2901 | `string`
2902 | 
2903 | </td>
2904 | </tr>
2905 | <tr>
2906 | <td>
2907 | 
2908 | <a id="scorestatusloading"></a> `ScoreStatusLoading`
2909 | 
2910 | </td>
2911 | <td>
2912 | 
2913 | `string`
2914 | 
2915 | </td>
2916 | </tr>
2917 | <tr>
2918 | <td>
2919 | 
2920 | <a id="scorestatusreceived"></a> `ScoreStatusReceived`
2921 | 
2922 | </td>
2923 | <td>
2924 | 
2925 | `string`
2926 | 
2927 | </td>
2928 | </tr>
2929 | <tr>
2930 | <td>
2931 | 
2932 | <a id="scoreverydissatisfiedlabel"></a> `ScoreVeryDissatisfiedLabel`
2933 | 
2934 | </td>
2935 | <td>
2936 | 
2937 | `string`
2938 | 
2939 | </td>
2940 | </tr>
2941 | <tr>
2942 | <td>
2943 | 
2944 | <a id="scoreverysatisfiedlabel"></a> `ScoreVerySatisfiedLabel`
2945 | 
2946 | </td>
2947 | <td>
2948 | 
2949 | `string`
2950 | 
2951 | </td>
2952 | </tr>
2953 | <tr>
2954 | <td>
2955 | 
2956 | <a id="sendbutton"></a> `SendButton`
2957 | 
2958 | </td>
2959 | <td>
2960 | 
2961 | `string`
2962 | 
2963 | </td>
2964 | </tr>
2965 | <tr>
2966 | <td>
2967 | 
2968 | <a id="successmessage"></a> `SuccessMessage`
2969 | 
2970 | </td>
2971 | <td>
2972 | 
2973 | `string`
2974 | 
2975 | </td>
2976 | </tr>
2977 | </tbody>
2978 | </table>
2979 | 
2980 | ***
2981 | 
2982 | ### FlagOverrides
2983 | 
2984 | ```ts
2985 | type FlagOverrides = Record<string, boolean | undefined>;
2986 | ```
2987 | 
2988 | ***
2989 | 
2990 | ### FlagRemoteConfig
2991 | 
2992 | ```ts
2993 | type FlagRemoteConfig = 
2994 |   | {
2995 |   key: string;
2996 |   payload: any;
2997 |  }
2998 |   | {
2999 |   key: undefined;
3000 |   payload: undefined;
3001 | };
3002 | ```
3003 | 
3004 | A remotely managed configuration value for a flag.
3005 | 
3006 | #### Type declaration
3007 | 
3008 | \{
3009 |   `key`: `string`;
3010 |   `payload`: `any`;
3011 |  \}
3012 | 
3013 | <table>
3014 | <thead>
3015 | <tr>
3016 | <th>Name</th>
3017 | <th>Type</th>
3018 | <th>Description</th>
3019 | </tr>
3020 | </thead>
3021 | <tbody>
3022 | <tr>
3023 | <td>
3024 | 
3025 | `key`
3026 | 
3027 | </td>
3028 | <td>
3029 | 
3030 | `string`
3031 | 
3032 | </td>
3033 | <td>
3034 | 
3035 | The key of the matched configuration value.
3036 | 
3037 | </td>
3038 | </tr>
3039 | <tr>
3040 | <td>
3041 | 
3042 | `payload`
3043 | 
3044 | </td>
3045 | <td>
3046 | 
3047 | `any`
3048 | 
3049 | </td>
3050 | <td>
3051 | 
3052 | The optional user-supplied payload data.
3053 | 
3054 | </td>
3055 | </tr>
3056 | </tbody>
3057 | </table>
3058 | 
3059 | \{
3060 |   `key`: `undefined`;
3061 |   `payload`: `undefined`;
3062 |  \}
3063 | 
3064 | <table>
3065 | <thead>
3066 | <tr>
3067 | <th>Name</th>
3068 | <th>Type</th>
3069 | </tr>
3070 | </thead>
3071 | <tbody>
3072 | <tr>
3073 | <td>
3074 | 
3075 | `key`
3076 | 
3077 | </td>
3078 | <td>
3079 | 
3080 | `undefined`
3081 | 
3082 | </td>
3083 | </tr>
3084 | <tr>
3085 | <td>
3086 | 
3087 | `payload`
3088 | 
3089 | </td>
3090 | <td>
3091 | 
3092 | `undefined`
3093 | 
3094 | </td>
3095 | </tr>
3096 | </tbody>
3097 | </table>
3098 | 
3099 | ***
3100 | 
3101 | ### InitOptions
3102 | 
3103 | ```ts
3104 | type InitOptions = ReflagDeprecatedContext & {
3105 |   apiBaseUrl: string;
3106 |   appBaseUrl: string;
3107 |   bootstrappedFlags: RawFlags;
3108 |   credentials: "include" | "same-origin" | "omit";
3109 |   enableTracking: boolean;
3110 |   expireTimeMs: number;
3111 |   fallbackFlags:   | string[]
3112 |      | Record<string, FallbackFlagOverride>;
3113 |   feedback: FeedbackOptions;
3114 |   logger: Logger;
3115 |   offline: boolean;
3116 |   publishableKey: string;
3117 |   sdkVersion: string;
3118 |   sseBaseUrl: string;
3119 |   staleTimeMs: number;
3120 |   staleWhileRevalidate: boolean;
3121 |   timeoutMs: number;
3122 |   toolbar: ToolbarOptions;
3123 | };
3124 | ```
3125 | 
3126 | ReflagClient initialization options.
3127 | 
3128 | #### Type declaration
3129 | 
3130 | <table>
3131 | <thead>
3132 | <tr>
3133 | <th>Name</th>
3134 | <th>Type</th>
3135 | <th>Description</th>
3136 | </tr>
3137 | </thead>
3138 | <tbody>
3139 | <tr>
3140 | <td>
3141 | 
3142 | `apiBaseUrl`?
3143 | 
3144 | </td>
3145 | <td>
3146 | 
3147 | `string`
3148 | 
3149 | </td>
3150 | <td>
3151 | 
3152 | Base URL of Reflag servers. You can override this to use your mocked server.
3153 | 
3154 | </td>
3155 | </tr>
3156 | <tr>
3157 | <td>
3158 | 
3159 | `appBaseUrl`?
3160 | 
3161 | </td>
3162 | <td>
3163 | 
3164 | `string`
3165 | 
3166 | </td>
3167 | <td>
3168 | 
3169 | Base URL of the Reflag web app. Links open ín this app by default.
3170 | 
3171 | </td>
3172 | </tr>
3173 | <tr>
3174 | <td>
3175 | 
3176 | `bootstrappedFlags`?
3177 | 
3178 | </td>
3179 | <td>
3180 | 
3181 | [`RawFlags`](globals.md#rawflags)
3182 | 
3183 | </td>
3184 | <td>
3185 | 
3186 | Pre-fetched flags to be used instead of fetching them from the server.
3187 | 
3188 | </td>
3189 | </tr>
3190 | <tr>
3191 | <td>
3192 | 
3193 | `credentials`?
3194 | 
3195 | </td>
3196 | <td>
3197 | 
3198 | `"include"` \| `"same-origin"` \| `"omit"`
3199 | 
3200 | </td>
3201 | <td>
3202 | 
3203 | When proxying requests, you may want to include credentials like cookies
3204 | so you can authorize the request in the proxy.
3205 | This option controls the `credentials` option of the fetch API.
3206 | 
3207 | </td>
3208 | </tr>
3209 | <tr>
3210 | <td>
3211 | 
3212 | `enableTracking`?
3213 | 
3214 | </td>
3215 | <td>
3216 | 
3217 | `boolean`
3218 | 
3219 | </td>
3220 | <td>
3221 | 
3222 | Whether to enable tracking. Defaults to `true`.
3223 | 
3224 | </td>
3225 | </tr>
3226 | <tr>
3227 | <td>
3228 | 
3229 | `expireTimeMs`?
3230 | 
3231 | </td>
3232 | <td>
3233 | 
3234 | `number`
3235 | 
3236 | </td>
3237 | <td>
3238 | 
3239 | If set, flags will be cached between page loads for this duration
3240 | 
3241 | </td>
3242 | </tr>
3243 | <tr>
3244 | <td>
3245 | 
3246 | `fallbackFlags`?
3247 | 
3248 | </td>
3249 | <td>
3250 | 
3251 |   \| `string`[]
3252 |   \| [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, [`FallbackFlagOverride`](globals.md#fallbackflagoverride)\>
3253 | 
3254 | </td>
3255 | <td>
3256 | 
3257 | Flag keys for which `isEnabled` should fallback to true
3258 | if SDK fails to fetch flags from Reflag servers. If a record
3259 | is supplied instead of array, the values of each key represent the
3260 | configuration values and `isEnabled` is assume `true`.
3261 | 
3262 | </td>
3263 | </tr>
3264 | <tr>
3265 | <td>
3266 | 
3267 | `feedback`?
3268 | 
3269 | </td>
3270 | <td>
3271 | 
3272 | [`FeedbackOptions`](globals.md#feedbackoptions)
3273 | 
3274 | </td>
3275 | <td>
3276 | 
3277 | AutoFeedback specific configuration
3278 | 
3279 | </td>
3280 | </tr>
3281 | <tr>
3282 | <td>
3283 | 
3284 | `logger`?
3285 | 
3286 | </td>
3287 | <td>
3288 | 
3289 | [`Logger`](globals.md#logger-1)
3290 | 
3291 | </td>
3292 | <td>
3293 | 
3294 | You can provide a logger to see the logs of the network calls.
3295 | This is undefined by default.
3296 | For debugging purposes you can just set the browser console to this property:
3297 | ```javascript
3298 | options.logger = window.console;
3299 | ```
3300 | 
3301 | </td>
3302 | </tr>
3303 | <tr>
3304 | <td>
3305 | 
3306 | `offline`?
3307 | 
3308 | </td>
3309 | <td>
3310 | 
3311 | `boolean`
3312 | 
3313 | </td>
3314 | <td>
3315 | 
3316 | Whether to enable offline mode. Defaults to `false`.
3317 | 
3318 | </td>
3319 | </tr>
3320 | <tr>
3321 | <td>
3322 | 
3323 | `publishableKey`
3324 | 
3325 | </td>
3326 | <td>
3327 | 
3328 | `string`
3329 | 
3330 | </td>
3331 | <td>
3332 | 
3333 | Publishable key for authentication
3334 | 
3335 | </td>
3336 | </tr>
3337 | <tr>
3338 | <td>
3339 | 
3340 | `sdkVersion`?
3341 | 
3342 | </td>
3343 | <td>
3344 | 
3345 | `string`
3346 | 
3347 | </td>
3348 | <td>
3349 | 
3350 | Version of the SDK
3351 | 
3352 | </td>
3353 | </tr>
3354 | <tr>
3355 | <td>
3356 | 
3357 | `sseBaseUrl`?
3358 | 
3359 | </td>
3360 | <td>
3361 | 
3362 | `string`
3363 | 
3364 | </td>
3365 | <td>
3366 | 
3367 | Base URL of Reflag servers for SSE connections used by AutoFeedback.
3368 | 
3369 | </td>
3370 | </tr>
3371 | <tr>
3372 | <td>
3373 | 
3374 | `staleTimeMs`?
3375 | 
3376 | </td>
3377 | <td>
3378 | 
3379 | `number`
3380 | 
3381 | </td>
3382 | <td>
3383 | 
3384 | Stale flags will be returned if staleWhileRevalidate is true if no new flags can be fetched
3385 | 
3386 | </td>
3387 | </tr>
3388 | <tr>
3389 | <td>
3390 | 
3391 | `staleWhileRevalidate`?
3392 | 
3393 | </td>
3394 | <td>
3395 | 
3396 | `boolean`
3397 | 
3398 | </td>
3399 | <td>
3400 | 
3401 | If set to true stale flags will be returned while refetching flags
3402 | 
3403 | </td>
3404 | </tr>
3405 | <tr>
3406 | <td>
3407 | 
3408 | `timeoutMs`?
3409 | 
3410 | </td>
3411 | <td>
3412 | 
3413 | `number`
3414 | 
3415 | </td>
3416 | <td>
3417 | 
3418 | Timeout in milliseconds when fetching flags
3419 | 
3420 | </td>
3421 | </tr>
3422 | <tr>
3423 | <td>
3424 | 
3425 | `toolbar`?
3426 | 
3427 | </td>
3428 | <td>
3429 | 
3430 | [`ToolbarOptions`](globals.md#toolbaroptions)
3431 | 
3432 | </td>
3433 | <td>
3434 | 
3435 | Toolbar configuration
3436 | 
3437 | </td>
3438 | </tr>
3439 | </tbody>
3440 | </table>
3441 | 
3442 | ***
3443 | 
3444 | ### Offset
3445 | 
3446 | ```ts
3447 | type Offset = {
3448 |   x: string | number;
3449 |   y: string | number;
3450 | };
3451 | ```
3452 | 
3453 | #### Type declaration
3454 | 
3455 | <table>
3456 | <thead>
3457 | <tr>
3458 | <th>Name</th>
3459 | <th>Type</th>
3460 | <th>Description</th>
3461 | </tr>
3462 | </thead>
3463 | <tbody>
3464 | <tr>
3465 | <td>
3466 | 
3467 | <a id="x"></a> `x`?
3468 | 
3469 | </td>
3470 | <td>
3471 | 
3472 | `string` \| `number`
3473 | 
3474 | </td>
3475 | <td>
3476 | 
3477 | Offset from the nearest horizontal screen edge after placement is resolved
3478 | 
3479 | </td>
3480 | </tr>
3481 | <tr>
3482 | <td>
3483 | 
3484 | <a id="y"></a> `y`?
3485 | 
3486 | </td>
3487 | <td>
3488 | 
3489 | `string` \| `number`
3490 | 
3491 | </td>
3492 | <td>
3493 | 
3494 | Offset from the nearest vertical screen edge after placement is resolved
3495 | 
3496 | </td>
3497 | </tr>
3498 | </tbody>
3499 | </table>
3500 | 
3501 | ***
3502 | 
3503 | ### PopoverPlacement
3504 | 
3505 | ```ts
3506 | type PopoverPlacement = Placement;
3507 | ```
3508 | 
3509 | ***
3510 | 
3511 | ### Position
3512 | 
3513 | ```ts
3514 | type Position = 
3515 |   | {
3516 |   type: "MODAL";
3517 |  }
3518 |   | {
3519 |   offset: Offset;
3520 |   placement: DialogPlacement;
3521 |   type: "DIALOG";
3522 |  }
3523 |   | {
3524 |   anchor:   | HTMLElement
3525 |      | null;
3526 |   placement: PopoverPlacement;
3527 |   type: "POPOVER";
3528 | };
3529 | ```
3530 | 
3531 | ***
3532 | 
3533 | ### RawFlag
3534 | 
3535 | ```ts
3536 | type RawFlag = {
3537 |   config: {
3538 |      key: string;
3539 |      missingContextFields: string[];
3540 |      payload: any;
3541 |      ruleEvaluationResults: boolean[];
3542 |      version: number;
3543 |     };
3544 |   isEnabled: boolean;
3545 |   isEnabledOverride: boolean | null;
3546 |   key: string;
3547 |   missingContextFields: string[];
3548 |   ruleEvaluationResults: boolean[];
3549 |   targetingVersion: number;
3550 | };
3551 | ```
3552 | 
3553 | A flag fetched from the server.
3554 | 
3555 | #### Type declaration
3556 | 
3557 | <table>
3558 | <thead>
3559 | <tr>
3560 | <th>Name</th>
3561 | <th>Type</th>
3562 | <th>Description</th>
3563 | </tr>
3564 | </thead>
3565 | <tbody>
3566 | <tr>
3567 | <td>
3568 | 
3569 | <a id="config-2"></a> `config`?
3570 | 
3571 | </td>
3572 | <td>
3573 | 
3574 | \{
3575 |   `key`: `string`;
3576 |   `missingContextFields`: `string`[];
3577 |   `payload`: `any`;
3578 |   `ruleEvaluationResults`: `boolean`[];
3579 |   `version`: `number`;
3580 |  \}
3581 | 
3582 | </td>
3583 | <td>
3584 | 
3585 | Optional user-defined dynamic configuration.
3586 | 
3587 | </td>
3588 | </tr>
3589 | <tr>
3590 | <td>
3591 | 
3592 | `config.key`
3593 | 
3594 | </td>
3595 | <td>
3596 | 
3597 | `string`
3598 | 
3599 | </td>
3600 | <td>
3601 | 
3602 | The key of the matched configuration value.
3603 | 
3604 | </td>
3605 | </tr>
3606 | <tr>
3607 | <td>
3608 | 
3609 | `config.missingContextFields`?
3610 | 
3611 | </td>
3612 | <td>
3613 | 
3614 | `string`[]
3615 | 
3616 | </td>
3617 | <td>
3618 | 
3619 | The missing context fields.
3620 | 
3621 | </td>
3622 | </tr>
3623 | <tr>
3624 | <td>
3625 | 
3626 | `config.payload`?
3627 | 
3628 | </td>
3629 | <td>
3630 | 
3631 | `any`
3632 | 
3633 | </td>
3634 | <td>
3635 | 
3636 | The optional user-supplied payload data.
3637 | 
3638 | </td>
3639 | </tr>
3640 | <tr>
3641 | <td>
3642 | 
3643 | `config.ruleEvaluationResults`?
3644 | 
3645 | </td>
3646 | <td>
3647 | 
3648 | `boolean`[]
3649 | 
3650 | </td>
3651 | <td>
3652 | 
3653 | The rule evaluation results.
3654 | 
3655 | </td>
3656 | </tr>
3657 | <tr>
3658 | <td>
3659 | 
3660 | `config.version`?
3661 | 
3662 | </td>
3663 | <td>
3664 | 
3665 | `number`
3666 | 
3667 | </td>
3668 | <td>
3669 | 
3670 | The version of the matched configuration value.
3671 | 
3672 | </td>
3673 | </tr>
3674 | <tr>
3675 | <td>
3676 | 
3677 | <a id="isenabled-1"></a> `isEnabled`
3678 | 
3679 | </td>
3680 | <td>
3681 | 
3682 | `boolean`
3683 | 
3684 | </td>
3685 | <td>
3686 | 
3687 | Result of flag evaluation.
3688 | Note: does not take local overrides into account.
3689 | 
3690 | </td>
3691 | </tr>
3692 | <tr>
3693 | <td>
3694 | 
3695 | <a id="isenabledoverride-1"></a> `isEnabledOverride`?
3696 | 
3697 | </td>
3698 | <td>
3699 | 
3700 | `boolean` \| `null`
3701 | 
3702 | </td>
3703 | <td>
3704 | 
3705 | If not null or undefined, the result is being overridden locally
3706 | 
3707 | </td>
3708 | </tr>
3709 | <tr>
3710 | <td>
3711 | 
3712 | <a id="key-2"></a> `key`
3713 | 
3714 | </td>
3715 | <td>
3716 | 
3717 | `string`
3718 | 
3719 | </td>
3720 | <td>
3721 | 
3722 | Flag key.
3723 | 
3724 | </td>
3725 | </tr>
3726 | <tr>
3727 | <td>
3728 | 
3729 | <a id="missingcontextfields-1"></a> `missingContextFields`?
3730 | 
3731 | </td>
3732 | <td>
3733 | 
3734 | `string`[]
3735 | 
3736 | </td>
3737 | <td>
3738 | 
3739 | Missing context fields.
3740 | 
3741 | </td>
3742 | </tr>
3743 | <tr>
3744 | <td>
3745 | 
3746 | <a id="ruleevaluationresults-1"></a> `ruleEvaluationResults`?
3747 | 
3748 | </td>
3749 | <td>
3750 | 
3751 | `boolean`[]
3752 | 
3753 | </td>
3754 | <td>
3755 | 
3756 | Rule evaluation results.
3757 | 
3758 | </td>
3759 | </tr>
3760 | <tr>
3761 | <td>
3762 | 
3763 | <a id="targetingversion"></a> `targetingVersion`?
3764 | 
3765 | </td>
3766 | <td>
3767 | 
3768 | `number`
3769 | 
3770 | </td>
3771 | <td>
3772 | 
3773 | Version of targeting rules.
3774 | 
3775 | </td>
3776 | </tr>
3777 | </tbody>
3778 | </table>
3779 | 
3780 | ***
3781 | 
3782 | ### RawFlags
3783 | 
3784 | ```ts
3785 | type RawFlags = Record<string, RawFlag>;
3786 | ```
3787 | 
3788 | ***
3789 | 
3790 | ### RequestFeedbackData
3791 | 
3792 | ```ts
3793 | type RequestFeedbackData = Omit<OpenFeedbackFormOptions, "key" | "onSubmit"> & {
3794 |   companyId: string;
3795 |   flagKey: string;
3796 |   onAfterSubmit: (data: FeedbackSubmission) => void;
3797 | };
3798 | ```
3799 | 
3800 | #### Type declaration
3801 | 
3802 | <table>
3803 | <thead>
3804 | <tr>
3805 | <th>Name</th>
3806 | <th>Type</th>
3807 | <th>Description</th>
3808 | </tr>
3809 | </thead>
3810 | <tbody>
3811 | <tr>
3812 | <td>
3813 | 
3814 | `companyId`?
3815 | 
3816 | </td>
3817 | <td>
3818 | 
3819 | `string`
3820 | 
3821 | </td>
3822 | <td>
3823 | 
3824 | Company ID from your own application.
3825 | 
3826 | </td>
3827 | </tr>
3828 | <tr>
3829 | <td>
3830 | 
3831 | `flagKey`
3832 | 
3833 | </td>
3834 | <td>
3835 | 
3836 | `string`
3837 | 
3838 | </td>
3839 | <td>
3840 | 
3841 | Flag key.
3842 | 
3843 | </td>
3844 | </tr>
3845 | <tr>
3846 | <td>
3847 | 
3848 | `onAfterSubmit`?
3849 | 
3850 | </td>
3851 | <td>
3852 | 
3853 | (`data`: [`FeedbackSubmission`](globals.md#feedbacksubmission)) => `void`
3854 | 
3855 | </td>
3856 | <td>
3857 | 
3858 | Allows you to handle a copy of the already submitted
3859 | feedback.
3860 | 
3861 | This can be used for side effects, such as storing a
3862 | copy of the feedback in your own application or CRM.
3863 | 
3864 | </td>
3865 | </tr>
3866 | </tbody>
3867 | </table>
3868 | 
3869 | ***
3870 | 
3871 | ### RequestFeedbackOptions
3872 | 
3873 | ```ts
3874 | type RequestFeedbackOptions = RequestFeedbackData & {
3875 |   userId: string;
3876 | };
3877 | ```
3878 | 
3879 | #### Type declaration
3880 | 
3881 | <table>
3882 | <thead>
3883 | <tr>
3884 | <th>Name</th>
3885 | <th>Type</th>
3886 | <th>Description</th>
3887 | </tr>
3888 | </thead>
3889 | <tbody>
3890 | <tr>
3891 | <td>
3892 | 
3893 | `userId`
3894 | 
3895 | </td>
3896 | <td>
3897 | 
3898 | `string`
3899 | 
3900 | </td>
3901 | <td>
3902 | 
3903 | User ID from your own application.
3904 | 
3905 | </td>
3906 | </tr>
3907 | </tbody>
3908 | </table>
3909 | 
3910 | ***
3911 | 
3912 | ### State
3913 | 
3914 | ```ts
3915 | type State = "idle" | "initializing" | "initialized" | "stopped";
3916 | ```
3917 | 
3918 | State of the client.
3919 | 
3920 | ***
3921 | 
3922 | ### ToolbarOptions
3923 | 
3924 | ```ts
3925 | type ToolbarOptions = 
3926 |   | boolean
3927 |   | {
3928 |   position: ToolbarPosition;
3929 |   show: boolean;
3930 | };
3931 | ```
3932 | 
3933 | Toolbar options.
3934 | 
3935 | ***
3936 | 
3937 | ### TrackEvent
3938 | 
3939 | ```ts
3940 | type TrackEvent = {
3941 |   attributes:   | Record<string, any>
3942 |      | null;
3943 |   company: CompanyContext;
3944 |   eventName: string;
3945 |   user: UserContext;
3946 | };
3947 | ```
3948 | 
3949 | #### Type declaration
3950 | 
3951 | <table>
3952 | <thead>
3953 | <tr>
3954 | <th>Name</th>
3955 | <th>Type</th>
3956 | </tr>
3957 | </thead>
3958 | <tbody>
3959 | <tr>
3960 | <td>
3961 | 
3962 | <a id="attributes"></a> `attributes`?
3963 | 
3964 | </td>
3965 | <td>
3966 | 
3967 |   \| [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `any`\>
3968 |   \| `null`
3969 | 
3970 | </td>
3971 | </tr>
3972 | <tr>
3973 | <td>
3974 | 
3975 | <a id="company-3"></a> `company`?
3976 | 
3977 | </td>
3978 | <td>
3979 | 
3980 | [`CompanyContext`](globals.md#companycontext)
3981 | 
3982 | </td>
3983 | </tr>
3984 | <tr>
3985 | <td>
3986 | 
3987 | <a id="eventname"></a> `eventName`
3988 | 
3989 | </td>
3990 | <td>
3991 | 
3992 | `string`
3993 | 
3994 | </td>
3995 | </tr>
3996 | <tr>
3997 | <td>
3998 | 
3999 | <a id="user-3"></a> `user`
4000 | 
4001 | </td>
4002 | <td>
4003 | 
4004 | [`UserContext`](globals.md#usercontext)
4005 | 
4006 | </td>
4007 | </tr>
4008 | </tbody>
4009 | </table>
4010 | 
4011 | ***
4012 | 
4013 | ### UnassignedFeedback
4014 | 
4015 | ```ts
4016 | type UnassignedFeedback = {
4017 |   comment: string;
4018 |   feedbackId: string;
4019 |   flagKey: string;
4020 |   promptedQuestion: string;
4021 |   promptId: string;
4022 |   question: string;
4023 |   score: number;
4024 |   source: "prompt" | "sdk" | "widget";
4025 | };
4026 | ```
4027 | 
4028 | #### Type declaration
4029 | 
4030 | <table>
4031 | <thead>
4032 | <tr>
4033 | <th>Name</th>
4034 | <th>Type</th>
4035 | <th>Description</th>
4036 | </tr>
4037 | </thead>
4038 | <tbody>
4039 | <tr>
4040 | <td>
4041 | 
4042 | <a id="comment-2"></a> `comment`?
4043 | 
4044 | </td>
4045 | <td>
4046 | 
4047 | `string`
4048 | 
4049 | </td>
4050 | <td>
4051 | 
4052 | User supplied comment about your flag.
4053 | 
4054 | </td>
4055 | </tr>
4056 | <tr>
4057 | <td>
4058 | 
4059 | <a id="feedbackid-3"></a> `feedbackId`?
4060 | 
4061 | </td>
4062 | <td>
4063 | 
4064 | `string`
4065 | 
4066 | </td>
4067 | <td>
4068 | 
4069 | Reflag feedback ID
4070 | 
4071 | </td>
4072 | </tr>
4073 | <tr>
4074 | <td>
4075 | 
4076 | <a id="flagkey"></a> `flagKey`
4077 | 
4078 | </td>
4079 | <td>
4080 | 
4081 | `string`
4082 | 
4083 | </td>
4084 | <td>
4085 | 
4086 | Flag key.
4087 | 
4088 | </td>
4089 | </tr>
4090 | <tr>
4091 | <td>
4092 | 
4093 | <a id="promptedquestion"></a> `promptedQuestion`?
4094 | 
4095 | </td>
4096 | <td>
4097 | 
4098 | `string`
4099 | 
4100 | </td>
4101 | <td>
4102 | 
4103 | The original question.
4104 | This only needs to be populated if the feedback was submitted through the automated feedback surveys channel.
4105 | 
4106 | </td>
4107 | </tr>
4108 | <tr>
4109 | <td>
4110 | 
4111 | <a id="promptid-1"></a> `promptId`?
4112 | 
4113 | </td>
4114 | <td>
4115 | 
4116 | `string`
4117 | 
4118 | </td>
4119 | <td>
4120 | 
4121 | Reflag feedback prompt ID.
4122 | 
4123 | This only exists if the feedback was submitted
4124 | as part of an automated prompt from Reflag.
4125 | 
4126 | Used for internal state management of automated
4127 | feedback.
4128 | 
4129 | </td>
4130 | </tr>
4131 | <tr>
4132 | <td>
4133 | 
4134 | <a id="question-4"></a> `question`?
4135 | 
4136 | </td>
4137 | <td>
4138 | 
4139 | `string`
4140 | 
4141 | </td>
4142 | <td>
4143 | 
4144 | The question that was presented to the user.
4145 | 
4146 | </td>
4147 | </tr>
4148 | <tr>
4149 | <td>
4150 | 
4151 | <a id="score-3"></a> `score`?
4152 | 
4153 | </td>
4154 | <td>
4155 | 
4156 | `number`
4157 | 
4158 | </td>
4159 | <td>
4160 | 
4161 | Customer satisfaction score.
4162 | 
4163 | </td>
4164 | </tr>
4165 | <tr>
4166 | <td>
4167 | 
4168 | <a id="source"></a> `source`?
4169 | 
4170 | </td>
4171 | <td>
4172 | 
4173 | `"prompt"` \| `"sdk"` \| `"widget"`
4174 | 
4175 | </td>
4176 | <td>
4177 | 
4178 | Source of the feedback, depending on how the user was asked
4179 | - `prompt` - Feedback submitted by way of an automated feedback survey (prompted)
4180 | - `widget` - Feedback submitted via `requestFeedback`
4181 | - `sdk` - Feedback submitted via `feedback`
4182 | 
4183 | </td>
4184 | </tr>
4185 | </tbody>
4186 | </table>
4187 | 
4188 | ## Variables
4189 | 
4190 | ### DEFAULT\_TRANSLATIONS
4191 | 
4192 | ```ts
4193 | const DEFAULT_TRANSLATIONS: FeedbackTranslations;
4194 | ```
4195 | 
4196 | ```tsx
4197 | import { FeedbackTranslations } from "../types";
4198 | /**
4199 |  * {@includeCode ./defaultTranslations.tsx}
4200 |  */
4201 | export const DEFAULT_TRANSLATIONS: FeedbackTranslations = {
4202 |   DefaultQuestionLabel: "How satisfied are you with this feature?",
4203 |   QuestionPlaceholder: "Write a comment",
4204 |   ScoreStatusDescription: "Pick a score and leave a comment",
4205 |   ScoreStatusLoading: "Saving score, please wait...",
4206 |   ScoreStatusReceived: "Score has been received!",
4207 |   ScoreVeryDissatisfiedLabel: "Very dissatisfied (1/5)",
4208 |   ScoreDissatisfiedLabel: "Dissatisfied (2/5)",
4209 |   ScoreNeutralLabel: "Neutral (3/5)",
4210 |   ScoreSatisfiedLabel: "Satisfied (4/5)",
4211 |   ScoreVerySatisfiedLabel: "Very satisfied (5/5)",
4212 |   SuccessMessage: "Feedback received, thank you!",
4213 |   SendButton: "Send feedback",
4214 | };
4215 | ```
4216 | 
4217 | ***
4218 | 
4219 | ### feedbackContainerId
4220 | 
4221 | ```ts
4222 | const feedbackContainerId: "reflag-feedback-dialog-container" = "reflag-feedback-dialog-container";
4223 | ```
4224 | 
4225 | ID of HTML DIV element which contains the feedback dialog
4226 | 
4227 | ***
4228 | 
4229 | ### propagatedEvents
4230 | 
4231 | ```ts
4232 | const propagatedEvents: string[];
4233 | ```
4234 | 
4235 | These events will be propagated to the feedback dialog
4236 | 
4237 | #### See
4238 | 
4239 | [https://developer.mozilla.org/en-US/docs/Web/API/Element#events](https://developer.mozilla.org/en-US/docs/Web/API/Element#events)
4240 | 
```

