# FrakInstallPresentation

```swift
enum FrakInstallPresentation
```

Which StoreKit surface offers the wallet install from the sheet's install step.

Neither carries App Store attribution: `campaignToken`, `providerToken` and
`customProductPageIdentifier` all resolve inside the presented app's own App Store Connect
account, which is the wallet's, never the merchant's.

**Conforms to** `Swift.Equatable`, `Swift.Hashable`, `Swift.Sendable`

Defined in: [Sources/FrakSDKUI/FrakSharingConfiguration.swift:45](https://github.com/frak-id/wallet/blob/35995d05c807efe1e0d6319fdede3ad363124d1e/sdk/ios/Sources/FrakSDKUI/FrakSharingConfiguration.swift#L45)

## Cases

### FrakInstallPresentation.overlay(_:)

```swift
case overlay(FrakInstallPresentation.Overlay)
```

A banner attached to the window scene. It installs in place and does not cover the
sheet, at the cost of no styling control and no report of whether it drew.

### FrakInstallPresentation.storeProductPage

```swift
case storeProductPage
```

A modal store page over the sheet. The user comes back to the sheet when it closes.

## Type properties

### overlay

```swift
static var overlay: FrakInstallPresentation { get }
```

## Operators

### !=(_:_:)

```swift
static func != (lhs: Self, rhs: Self) -> Bool
```

Returns a Boolean value indicating whether two values are not equal.

Inequality is the inverse of equality. For any values `a` and `b`, `a != b`
implies that `a == b` is `false`.

This is the default implementation of the not-equal-to operator (`!=`)
for any type that conforms to `Equatable`.

- Parameters:
  - lhs: A value to compare.
  - rhs: Another value to compare.