public in the SDK source. The guide pages (Getting started through Offline and performance) teach how to use them in context; this page is the index. Internal types are not listed, because you cannot call them.
This reference reflects FlowPilot iOS SDK v1.0.0 (
FlowPilotSDK.version). Public symbols can change between versions, so check the version string in your installed package if a signature here does not match.Setup
Configure the SDK once at launch, then reach everything else throughFlowPilot.shared. See Configuration.
FlowPilotConfiguration
A public struct. Only apiKey and appId are required; everything else has a default.
FlowPilotEnvironment
FlowPilotLogLevel
PrefetchMediaStrategy
FlowPilotConfiguration.prefetchMediaStrategy. Governs launch prefetch (prefetchOnLaunch) and bounds the screen window when a prefetch(_:warmMedia: true) call opts into media warming. See Prefetching.
SDKContext
Presenting
Methods onFlowPilot.shared. The presentPlacement overloads are UIKit-only (#if canImport(UIKit)). See Presenting placements, SwiftUI integration, and Prefetching.
PrefetchOutcome
prefetch(_:warmMedia:). See Prefetching.
PresentationOptions
PresentationStyle
PlacementInfo
PlacementInfo is declared public, but no public API returns it in v1.0.0. To check whether a placement will show, use isPlacementReady(_:) instead.Session
FlowSession is the live, observable handle to a presented flow. It is a public final class conforming to ObservableObject and Identifiable. See SwiftUI integration, Variables and SDK context, and Media preloading.
Published state
currentScreen exposes a ScreenNode whose public fields are id, kind, name, screenType, props, and layout.
Methods
The engine objects inside a session (
variableStore, navigationController, actionExecutor, and so on) are internal. Use the delegating methods above instead of reaching into them.Presenter (SwiftUI / UIKit)
How a session becomes on-screen UI. See SwiftUI integration.FlowPresenterModifier (the type behind .flowPresenter) is also public, but use the .flowPresenter(session:onResult:) modifier rather than constructing it directly.
Results
Returned by the presenting andwaitForCompletion() APIs. See Results and outcomes.
Variables
See Variables and SDK context.VariableValue also conforms to ExpressibleBy{String,Integer,Float,Boolean,Array}Literal, so you can write session.setVariable("plan", value: "premium") or value: 3.
Custom components and screens
Registration methods onFlowPilot.shared, plus the definition types. See Custom components and Custom screens.
Analytics
See Analytics integration and the Event taxonomy.event_type conversion via trackConversion(...), not through AutomaticEventType.
Errors
See Error handling.FlowPilotErrorCode is a String enum with these cases (raw values in the Error handling table): invalidApiKey, invalidAppId, sdkNotInitialized, networkError, apiError, timeout, rateLimited, placementNotFound, flowNotFound, targetingNotMet, frequencyLimitReached, unsupportedSchemaVersion, invalidFlowSchema, componentRenderError, customComponentNotFound, customScreenNotFound, navigationError, variableError, actionError, fatalActionError, actionChainTimeout, internalError.
Caching and offline
See Caching and Offline and bundled flows.On non-UIKit platforms (macOS without UIKit),
ImageCache is a reduced stub: getImage, setImage, and setImageData are not available there.Callbacks and typealiases
FlowCompletionCallback and FlowDismissalCallback are declared public for source compatibility, but there is no setter for them and the SDK does not invoke them in v1.0.0. Get the result from the present APIs’ return value, the completion: closure, or FlowResult instead.Deprecated aliases
Short-prefix names kept for source compatibility with v1.0 integrators. Each is marked@available(*, deprecated, renamed:); migrate to the FlowPilot* name.
Debug
createTestSession() also exists but is compiled only in #if DEBUG builds and is for rendering tests, not production use.