export type InstallBannerVariant = 'prompt' | 'ios'; export type InstallBannerState = { variant: InstallBannerVariant; }; export type InstallBannerInput = { isInstalled: boolean; isStandalone: boolean; canInstall: boolean; isIos: boolean; }; export function resolveInstallBannerState(input: InstallBannerInput): InstallBannerState | null { if (input.isInstalled || input.isStandalone) { return null; } if (input.canInstall) { return { variant: 'prompt' }; } if (input.isIos) { return { variant: 'ios' }; } return null; }