import { AptlyBaseSchema } from './extends.js'; import { AptlySlugLevel, AptlyWebhookType } from '../enums/index.js'; import { AptlyAppSandbox, AptlyAppScope, AptlyField, AptlyScopes } from '../core/index.js'; import { AptlyMediaSrcSchema } from './media.js'; export type AptlyApp = AptlyAppSchema; export interface AptlyAppSchema extends AptlyBaseSchema { slug: string; description: string; installUrl: string; redirectUris: string[]; clientSecret: string; user: ID; logo?: AptlyMediaSrcSchema | null; banner?: AptlyMediaSrcSchema | null; settings: AptlyAppSettingSchema[]; webhooks: AptlyAppWebhookSchema[]; menus: AptlyAppMenuSchema[]; actions: AptlyAppActionSchema[]; cost?: number; scopes: AptlyAppScope[]; implements: AptlyAppImplementation[]; sign?: { orderUrl: string; }; payment?: { orderUrl: string; cancelUrl: string; captureUrl: string; voidUrl: string; }; } export interface AptlyAppSignMethod { value: string; label: string; } export declare enum AptlyAppImplementation { Sign = "sign", Payment = "payment" } export declare enum AptlyAppImplementationSetting { SignCostPer = "costPerSign", SignMethod = "signMethod", PaymentSellerId = "seller_id" } export type AptlyAppSetting = AptlyAppSettingSchema; export interface AptlyAppSettingSchema extends AptlyField { _id: ID; key: string; defaultValue: any; scope?: AptlyScopes | null; } export type AptlyAppWebhook = AptlyAppWebhookSchema; export interface AptlyAppWebhookSchema { _id: ID; types: AptlyWebhookType[]; url: string; } export declare enum AptlyUserInjection { Base = "", Admin = "admin" } export declare enum AptlyAdminInjection { Base = "", Content = "content", Modules = "modules", Admin = "admin" } export declare enum AptlyOrganizationInjection { Base = "", Options = "options", Admin = "admin", AdminContent = "admin-content", AdminReports = "admin-reports", AdminSettings = "admin-settings", AdminIntegrations = "admin-integrations", AdminBeta = "admin-beta" } export declare enum AptlyProjectInjection { Base = "", Support = "support", Admin = "admin", AdminContent = "admin-content", AdminOptions = "admin-options", AdminReports = "admin-reports", AdminSettings = "admin-settings", AdminIntegrations = "admin-integrations", AdminBeta = "admin-beta" } export declare enum AptlyUnitInjection { Base = "", Options = "options", Service = "service", Reports = "reports", Support = "support", Admin = "admin" } export type AptlyAppInjectionMenu = `organization-${AptlyOrganizationInjection}` | `project-${AptlyProjectInjection}` | `unit-${AptlyUnitInjection}`; export declare enum AptlyAppInjectionType { Iframe = "iframe" } export type AptlyAppMenu = AptlyAppMenuSchema; export interface AptlyAppMenuSchema { _id: ID; type: AptlyAppInjectionType; level: AptlySlugLevel; scope: AptlyScopes; menu: AptlyAppInjectionMenu[]; model: AptlyScopes; label: string; icon?: AptlyMediaSrcSchema | null; src: string; sandbox: AptlyAppSandbox[]; } export type AptlyAppAction = AptlyAppActionSchema; export interface AptlyAppActionSchema { _id: ID; model: AptlyAppActionModel; scope: AptlyScopes; webhook: AptlyWebhookType; label: string; stateJSON: string; } export declare enum AptlyAppActionModel { Order = "Order" }