, * } * * @psalm-type AppStoreFetcherAppAuthor = array{ * name: string, * mail: string, * homepage: string, * } * * @psalm-type AppStoreFetcherAppScreenshot = array{ * url: string, * smallThumbnail: string, * } * * @psalm-type AppStoreFetcherAppTranslationsEntry = array{ * name: string, * summary: string, * description: string, * } * * @psalm-type AppStoreFetcherAppTranslations = array{ en: AppStoreFetcherAppTranslationsEntry } & array * * @psalm-type AppStoreFetcherAppReleasesEntryTranslations = array{ en: array{ changelog: string } } & array * * @psalm-type AppStoreFetcherAppReleasesEntryRequirements = array{ * id: string, * versionSpec: string, * rawVersionSpec: string, * } * * @psalm-type AppStoreFetcherAppReleasesEntry = array{ * version: string, * phpExtensions?: list, * databases?: list, * shellCommands?: list, * phpVersionSpec: string, * platformVersionSpec: string, * minIntSize: int, * download: string, * created: string, * licenses?: list, * lastModified: string, * isNightly: boolean, * rawPhpVersionSpec: string, * rawPlatformVersionSpec: string, * signature: string, * translations: AppStoreFetcherAppReleasesEntryTranslations, * signatureDigest: string, * } * * @psalm-type AppStoreFetcherApp = array{ * id: string, * authors?: list, * categories: string[], * certificate: string, * created: string, * lastModified: string, * translations: AppStoreFetcherAppTranslations, * releases?: list, * screenshots?: list, * adminDocs: string, * userDocs: string, * developerDocs: string, * discussion: string, * issueTracker: string, * website: string, * isFeatured: boolean, * ratingRecent: float, * ratingOverall: float, * ratingNumRecent: int, * ratingNumOverall: int, * } * * @psalm-type AppStoreFetcherDiscoverLocalizedString = array{en: string} & array * * @psalm-type AppStoreFetcherDiscoverMediaSource = array{ * mime: string, * src: string, * } * * @psalm-type AppStoreFetcherDiscoverMediaContent = array{ * src: AppStoreFetcherDiscoverMediaSource|list, * alt: string, * link?: string, * } * * @psalm-type AppStoreFetcherDiscoverLocalizedMediaContent = array{en: AppStoreFetcherDiscoverMediaContent} & array * * @psalm-type AppStoreFetcherDiscoverMediaObject = array{ * content: AppStoreFetcherDiscoverLocalizedMediaContent, * alignment?: 'start'|'end'|'center', * } * * @psalm-type AppStoreFetcherDiscoverContainerBase = array{ * id?: string, * order?: int, * headline?: AppStoreFetcherDiscoverLocalizedString, * text?: AppStoreFetcherDiscoverLocalizedString, * link?: string, * date?: string, * expiryDate?: string, * } * * @psalm-type AppStoreFetcherDiscoverAppElement = array{ * type: 'app', * appId: string, * } * * @psalm-type AppStoreFetcherDiscoverPostElement = AppStoreFetcherDiscoverContainerBase & array{ * type: 'post', * media?: AppStoreFetcherDiscoverMediaObject, * } * * @psalm-type AppStoreFetcherDiscoverShowcaseElement = AppStoreFetcherDiscoverContainerBase & array{ * type: 'showcase', * content: list, * } * * @psalm-type AppStoreFetcherDiscoverCarouselElement = AppStoreFetcherDiscoverContainerBase & array{ * type: 'carousel', * content: list, * } * * @psalm-type AppStoreFetcherDiscoverElement = * AppStoreFetcherDiscoverPostElement| * AppStoreFetcherDiscoverShowcaseElement| * AppStoreFetcherDiscoverCarouselElement */ final class ResponseDefinitions { }