export type PropType = 'string' | 'number' | 'bool' | 'datetime' | 'object' | 'array_row' | 'array_string';
export type UpdateType = 'user_set' | 'user_setOnce' | 'user_add';
export type Source = 'template' | 'prd' | 'chat' | 'codebase' | 'website' | 'autotrack' | 'business_dimension';
export type SDKIntegrationMode = 'client_only' | 'server_only' | 'both';
export type EventPlatform = 'client' | 'server' | 'both';
export type ServerLanguage = 'java' | 'python' | 'go' | 'nodejs' | 'php' | 'csharp' | 'cpp' | 'ruby' | 'lua' | 'other';
export type ClientLanguage = 'java' | 'kotlin' | 'objc' | 'swift' | 'javascript' | 'typescript' | 'csharp' | 'cpp' | 'lua' | 'dart' | 'vue' | 'other';
export type SDKType = 'android' | 'ios' | 'openharmony' | 'javascript' | 'wechat_mp' | 'wechat_mg' | 'douyin_mp' | 'alipay_mp' | 'other_mp' | 'unity' | 'unity_wxmg' | 'cocos2dx' | 'cocoscreator' | 'layaair' | 'unreal' | 'react_native' | 'flutter' | 'uniapp_mp' | 'uniapp_app' | 'uniapp_h5';
export interface Property {
    name: string;
    display_name?: string;
    type: PropType;
    desc?: string;
    source: Source;
}
export interface UserProperty extends Property {
    update_type?: UpdateType;
    prop_tag?: string;
}
export interface Event {
    event_name: string;
    display_name?: string;
    event_tag?: string;
    event_desc?: string;
    platform?: EventPlatform;
    source: Source;
    prop_names: string[];
}
export type AccountIdSource = 'user_account' | 'role_id' | 'none';
export type DistinctIdStrategy = 'auto' | 'device_id' | 'custom';
export interface UserIdentity {
    account_id_source: AccountIdSource;
    account_id_field?: string;
    distinct_id_strategy: DistinctIdStrategy;
    distinct_id_custom_value?: string;
}
export type RevenueModel = 'IAA' | 'IAP' | 'mixed' | 'subscription' | 'commission' | 'none';
export interface CurrencyConfig {
    name: string;
    get_sources: string[];
    consume_uses: string[];
}
export interface BusinessDimension {
    revenue_model: RevenueModel;
    core_loop?: string;
    functional_entries?: string[];
    currency_system?: {
        hard_currency?: CurrencyConfig;
        soft_currency?: CurrencyConfig;
    };
    ad_scenes?: string[];
    iap_items?: string[];
}
export interface Draft {
    meta: {
        app_type: string;
        sdk_integration_mode: SDKIntegrationMode;
        client_platforms?: SDKType[];
        client_sdk_type?: SDKType;
        client_languages?: ClientLanguage[];
        client_platform_languages?: Record<SDKType, ClientLanguage[]>;
        server_language?: ServerLanguage;
        project_id?: number;
        host?: string;
        plan_name: string;
        scenario?: string;
        source_type?: string;
        user_identity?: UserIdentity;
        business_dimension?: BusinessDimension;
        lang?: string;
        archived_at?: string;
        archived_path?: string;
        sdk_type?: SDKType;
    };
    events: Event[];
    event_properties: Property[];
    common_event_properties: Property[];
    user_properties: UserProperty[];
}
