import mongoose, { HydratedDocument } from 'mongoose';
import { SalesTargetType } from 'src/sales/schema/sales-target-schema';
export declare enum PaymentGateway {
    STRIPE = "stripe",
    RAZORPAY = "razorpay",
    PAYTAB = "paytab",
    CASHFREE = "cashfree",
    FLUTTERWAVE = "flutterwave"
}
export declare enum SurchargeAppliesTo {
    Takeaway = "takeaway",
    Delivery = "delivery",
    Both = "both"
}
export declare enum CommissionForRestaurantBy {
    Food_Percentage = "food-percentage",
    Fixed = "fixed",
    Percentage = "percentage",
    ORDER_AMOUNT = "order_amount",
    COMMISSION_AMOUNT = "commission_amount"
}
export declare enum adminPayoutType {
    Daily = "daily",
    Weekly = "weekly",
    Monthly = "monthly"
}
export declare enum AdminIncentiveType {
    Automatic = "automatic",
    Manual = "manual"
}
export declare class CashfreeData {
    client_id: string;
    client_secret: string;
    payout_client_id: string;
    payout_client_secret: string;
    webhook_secret: string;
    app_id: string;
    secret_key: string;
    payout_app_id: string;
    payout_secret_key: string;
    platform_charges: string;
}
export declare class RazorpayData {
    key: string;
    secret: string;
    bank_account: string;
}
export declare class PaytabData {
    profile_id: string;
    secret: string;
}
export declare class StripeData {
    key: string;
    secret: string;
    webhook: string;
}
export declare class driver_charges {
    cloth_charge: string;
    bag_charge: string;
}
export declare class Referral {
    is_active: boolean;
    number_of_persons: number;
    number_of_orders: number;
    amount: number;
}
export declare class CustomerEditProfile {
    anniversary_date: boolean;
    gender: boolean;
    dob: boolean;
}
export declare class AdminPayout {
    admin_payout_type: string;
    monthly: number[];
    weekly: string[];
}
export declare class service_area {
    lat: number;
    lng: number;
    location_name: string;
    admin_service_range: number;
    is_all_world: boolean;
}
export declare class CustomerCommissionDistribution {
    user_sponsor_commission_percentage: number;
    vendor_sponsor_commission_percentage: number;
    rewards_percentage: number;
}
export declare class AppVersionPlatform {
    min_version: string;
    current_version: string;
}
export declare class AppVersionConfig {
    android: AppVersionPlatform;
    ios: AppVersionPlatform;
}
export declare class SalesCommissionDistributionConfig {
    company_wallet_percentage: number;
    customer_commission_wallet_percentage: number;
    customer_commission_distribution: CustomerCommissionDistribution;
}
declare class support {
    email: string;
    country_code: string;
    call: string;
    company_address: string;
    company_name: string;
    skype: string;
}
declare enum modes {
    STRIPE = "STRIPE",
    RAZORPAY = "RAZORPAY",
    CASHFREE = "CASHFREE",
    FLUTTERWAVE = "FLUTTERWAVE",
    PAYTAB = "PAYTAB"
}
export declare enum DistanceUnit {
    KM = "km",
    MILE = "mile"
}
export declare enum AirportChargesPayout {
    DRIVER = "DRIVER",
    ADMIN = "ADMIN"
}
export declare enum DriverGstPayout {
    DRIVER = "DRIVER",
    ADMIN = "ADMIN"
}
declare class social_links {
    facebook_url: string;
    instagram_url: string;
    youtube_url: string;
    twitter_url: string;
    linkedin_url: string;
}
declare class AppLinks {
    android_customer: string;
    android_driver: string;
    ios_customer: string;
    ios_driver: string;
}
declare class PanelLinks {
    fleet_panel: string;
    corporate_panel: string;
    agent_panel: string;
}
declare class email_creds {
    AppEmail: string;
    AppPassword: string;
}
declare class tax {
    tax_keyword: string;
    tax_keyword_hindi: string;
    tax_percentage: string;
    commission_tax_percentage: string;
    payout_tax_percentage: string;
    tax: boolean;
}
export declare class StripeConfig {
    key: string;
    secret: string;
    webhook: string;
    platform_charges: string;
}
export declare class RazorpayConfig {
    key: string;
    secret: string;
    webhook: string;
    x_account: string;
    platform_charges: string;
    bank_account: string;
}
export declare class CashfreeConfig {
    app_id: string;
    secret_key: string;
    payout_app_id: string;
    payout_secret_key: string;
    platform_charges: string;
}
export declare class PaymentMethods {
    card: boolean;
    wallet: boolean;
    cash: boolean;
    pass: boolean;
}
export declare class LogsRequired {
    idle: boolean;
    going_to_pickup: boolean;
    on_ride: boolean;
}
export declare enum JobAssignmentAlgorithm {
    RoundRobin = "RoundRobin",
    LeastServed = "LeastServed",
    Broadcast = "Broadcast",
    Rating = "Rating"
}
export declare enum TransactionFeesPayBy {
    App = "app",
    User = "user"
}
export declare enum ServiceTypeForDrivers {
    FREELANCE = "freelance",
    SALARIED = "salaried"
}
export declare enum PayoutType {
    SUBSCRIPTION = "subscription",
    COMMISSION = "commission"
}
export declare enum GatewayTypes {
    STRIPE = "stripe",
    RAZORPAY = "razorpay",
    CASHFREE = "cashfree"
}
declare class FuelType {
    label: string;
    value: string;
}
declare class CountryCode {
    value: string;
    code: string;
}
export declare class FlutterWaveConfig {
    key: string;
    secret: string;
    webhook: string;
    return_url: string;
    platform_charges: string;
}
export declare class AppConfiguration {
    product_name: string;
    support: support;
    email_creds: email_creds;
    social_links: social_links;
    apps_links: AppLinks;
    panels_links: PanelLinks;
    tax: tax;
    payment_mode: modes;
    stripe: StripeConfig;
    cashfree: CashfreeData;
    flutterwave: FlutterWaveConfig;
    razorpay: RazorpayConfig;
    currency: string;
    distance_unit: string;
    transaction_fees_pay_by: TransactionFeesPayBy;
    payout_mode: string;
    airport_charges_payout: string;
    driver_gst_payout: string;
    driver_service_type: string[];
    payment_methods: PaymentMethods;
    logs_required: LogsRequired;
    use_service_area: boolean;
    police_number: string;
    payout_type: string[];
    payout_type_fleet: string[];
    primary_country_code: CountryCode;
    have_comfort_options: boolean;
    job_asign_algorithm: string;
    show_booking_price_that_customer_paid_for_cash: boolean;
    show_booking_price_that_customer_paid_for_online: boolean;
    fuel_types: FuelType[];
    service_area: service_area;
    driver_charges: driver_charges;
    base_fee: number;
    distance_per_km: number;
    commission_percentage_for_driver: number;
    commission_percentage_for_restaurant: number;
    order_taking_range: number;
    commission_for_restaurant_by: string;
    show_restaurant_range: number;
    app_commission: number;
    location: {
        type: 'Point';
        coordinates: number[];
    };
    lat: number;
    lng: number;
    location_name: string;
    cities: string[];
    referral?: Referral;
    wallet: boolean;
    loyalty: boolean;
    include_captcha: boolean;
    include_ads: boolean;
    loyalty_minimun_order: number;
    amount_per_loyalty: number;
    paymentGateway: PaymentGateway;
    paytab: PaytabData;
    customer_edit_profile: CustomerEditProfile;
    catering_commission: number;
    admin_payout: AdminPayout;
    isFreeDeliveryAvailable: boolean;
    freeDeliveryMinOrderAmount: number;
    isDriverIncentiveEnabled: boolean;
    driverIncentiveMode: string;
    surcharge_applies_to: string;
    sales_commission_percentage: number;
    sales_commission_distribution_config: SalesCommissionDistributionConfig;
    sales_target_type: SalesTargetType;
    cod_max_limit: number;
    is_cod_allowed: boolean;
    is_handover_enable: boolean;
    penalty_for_order_cancel: number;
    customer_app: AppVersionConfig;
    driver_app: AppVersionConfig;
    vendor_app: AppVersionConfig;
    daily_max_working_hours: string;
    driver_working_hour_enable: boolean;
    share_ride_max_detour_minutes: number;
    share_ride_discount_percent: number;
}
export type AppConfigurationDocument = HydratedDocument<AppConfiguration>;
export declare const AppConfigurationModel: mongoose.Schema<AppConfiguration, mongoose.Model<AppConfiguration, any, any, any, mongoose.Document<unknown, any, AppConfiguration, any, {}> & AppConfiguration & {
    _id: mongoose.Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, AppConfiguration, mongoose.Document<unknown, {}, mongoose.FlatRecord<AppConfiguration>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & mongoose.FlatRecord<AppConfiguration> & {
    _id: mongoose.Types.ObjectId;
} & {
    __v: number;
}>;
export {};
