fireside_flutter library

Flutter plugin that embeds the Fireside Interview as a full-screen native modal, wrapping the Fireside Android and iOS SDKs.

The public surface is the locked MOBILE_SDK_API contract realized in Dart: configure once with Fireside.init / Fireside.identify, launch an interview with Fireside.present (resolving an InterviewResult), and read per-participant state with Fireside.fetchInterviewStatuses (an InterviewStatus map).

Classes

FetchFailed
The call can't produce a map. Carries the shared FailureReason — the same set present emits (no fetch-only reason): FailureReason.networkIssue, FailureReason.integrationError, or FailureReason.unexpected — each reason's meaning is documented on FailureReason itself.
FetchResult
The terminal outcome of Fireside.fetchInterviewStatuses.
FetchStatuses
The backend read succeeded. Carries a total map keyed by studyId: every requested id has an entry and the SDK never returns null; a requested study that is not valid for this key comes back as InterviewStatus.unknownStudy.
Fireside
Public API. The single global SDK instance is configured once at host startup via init; every later call references it, so host code never holds an SDK handle.
InterviewCompletedNoReviewNeeded
The participant submitted; no review gate — final. See InterviewResult.completedNoReviewNeeded.
InterviewCompletedPendingReview
The participant submitted; a review decision is pending. See InterviewResult.completedPendingReview.
InterviewFailed
The interview could not complete; reason says why.
InterviewPermissionDenied
Camera or microphone permission was denied and the interview cannot proceed. See InterviewResult.permissionDenied.
InterviewResult
The terminal outcome of Fireside.present.
InterviewScreenedOut
The participant did not qualify during screening. See InterviewResult.screenedOut.
InterviewStatus
A host-facing projection of Fireside-backend truth about one participant × study, read via Fireside.fetchInterviewStatuses.
InterviewStatusCompletedNoReviewNeeded
Submitted; no review gate — final. See InterviewStatus.completedNoReviewNeeded.
InterviewStatusCompletedPendingReview
Submitted; a review decision is pending. See InterviewStatus.completedPendingReview.
InterviewStatusNotStarted
Eligible to start; nothing recorded yet. See InterviewStatus.notStarted.
InterviewStatusReviewApproved
A reviewer approved the finished interview. See InterviewStatus.reviewApproved.
InterviewStatusReviewRejected
A reviewer rejected the finished interview. See InterviewStatus.reviewRejected.
InterviewStatusScreenedOut
The participant did not qualify during screening. See InterviewStatus.screenedOut.
InterviewStatusStarted
An interview is underway. See InterviewStatus.started.
InterviewStatusStudyUnavailable
The study cannot be taken right now. See InterviewStatus.studyUnavailable.
InterviewStatusTechRejected
The system invalidated a started interview; reason says why — the same TechRejectedReason set as InterviewResult.techRejected.
InterviewStatusUnknown
A status this SDK version does not recognize. See InterviewStatus.unknown.
InterviewStatusUnknownStudy
The studyId is not a valid study for this key/environment. See InterviewStatus.unknownStudy.
InterviewStudyUnavailable
The study cannot be taken right now. See InterviewResult.studyUnavailable.
InterviewTechRejected
The system invalidated the interview; reason says why. See TechRejectedReason.
InterviewUserExited
The participant exited mid-interview. See InterviewResult.userExited.

Enums

FailureReason
Why an interview could not complete, carried by InterviewFailed and FetchFailed.
TechRejectedReason
Why an interview was system-invalidated, surfaced through InterviewTechRejected (and shared with the native InterviewStatus).