import { Identifier, NumberIsLiteral, StringIsLiteral, UnionPrettify } from "typeforge"; import type { DeepLinkAppsFlyerFormat, DeepLinkRobloxProtocolFormat, DeepLinkRobloxUrlFormat } from "./deepLinkHelpers.types"; type ObjectIsLiteral> = ({ [Key in keyof Obj]: false; })["constructor"] extends false ? false : true; type StringIsEmpty = T extends string ? T extends "" ? true : false : false; type IsLiteral = T extends number ? NumberIsLiteral : T extends string ? StringIsLiteral : T extends Record ? ObjectIsLiteral : false; type DeepLinkFormat = UnionPrettify<"AppsFlyer" | "RobloxProtocol" | "RobloxUrl">; type DeepLink = (Format extends "AppsFlyer" ? DeepLinkAppsFlyerFormat : Format extends "RobloxProtocol" ? DeepLinkRobloxProtocolFormat : DeepLinkRobloxUrlFormat); type DeepLinkReturns = Format extends "AppsFlyer" ? DeepLinkAppsFlyerFormat & DeepLinkMethods : Format extends "RobloxProtocol" ? DeepLinkRobloxProtocolFormat & DeepLinkMethods : DeepLinkRobloxUrlFormat & DeepLinkMethods; type DeepLinkMethods = { setLaunchData: | undefined | string>(launchData: LaunchData) => DeepLinkReturns extends true ? false : IsLiteral), Format>; toAppsFlyerFormat: () => DeepLinkAppsFlyerFormat & DeepLinkMethods; toRobloxProtocolFormat: () => DeepLinkRobloxProtocolFormat & DeepLinkMethods; toRobloxUrlFormat: () => DeepLinkRobloxUrlFormat & DeepLinkMethods; "🔒__PRIVATE_SELF": DeepLink; }; export declare const deepLinkCreate: , Format extends "AppsFlyer" | "RobloxProtocol" | "RobloxUrl">({ placeId, launchData, format }: { placeId: PlaceId; launchData?: LaunchData | undefined; format?: Format | undefined; }) => DeepLinkReturns, Format>; export {};