import { FabrixModel as Model } from '@fabrix/fabrix/dist/common';
import { SequelizeResolver } from '@fabrix/spool-sequelize';
export declare class ShopResolver extends SequelizeResolver {
    batch(options: any, batch: any): any;
    resolveByInstance(shop: any, options?: {
        [key: string]: any;
    }): Promise<any>;
    resolveById(shop: any, options?: {
        [key: string]: any;
    }): any;
    resolveByToken(shop: any, options?: {
        [key: string]: any;
    }): any;
    resolveByHandle(shop: any, options?: {
        [key: string]: any;
    }): any;
    resolveByNumber(shop: any, options?: {
        [key: string]: any;
    }): any;
    resolveByString(shop: any, options?: {
        [key: string]: any;
    }): any;
    resolveDefault(options?: {
        [key: string]: any;
    }): any;
    resolve(shop: any, options?: {
        [key: string]: any;
    }): any;
    transformShops(shops?: any[], options?: {
        [key: string]: any;
    }): any;
}
export declare class Shop extends Model {
    static readonly resolver: typeof ShopResolver;
    static config(app: any, Sequelize: any): {
        options: {
            underscored: boolean;
            enums: {
                UNITS: {
                    G: string;
                    KG: string;
                    OZ: string;
                    LB: string;
                };
            };
            scopes: {
                live: {
                    where: {
                        live_mode: boolean;
                    };
                };
            };
            hooks: {
                beforeValidate: ((shop: any, options: any) => void)[];
            };
        };
    };
    static schema(app: any, Sequelize: any): {
        name: {
            type: any;
            allowNull: boolean;
        };
        handle: {
            type: any;
            allowNull: boolean;
            unique: boolean;
            set: (val: any) => void;
        };
        phone: {
            type: any;
        };
        primary_locale: {
            type: any;
            defaultValue: string;
            allowNull: boolean;
        };
        address_id: {
            type: any;
        };
        currency: {
            type: any;
            defaultValue: string;
            allowNull: boolean;
        };
        host: {
            type: any;
            allowNull: boolean;
        };
        email: {
            type: any;
            validate: {
                isEmail: boolean;
            };
        };
        money_format: {
            type: any;
            defaultValue: string;
            allowNull: boolean;
        };
        money_with_currency_format: {
            type: any;
            defaultValue: string;
            allowNull: boolean;
        };
        tax_shipping: {
            type: any;
            defaultValue: boolean;
        };
        taxes_included: {
            type: any;
            defaultValue: boolean;
        };
        county_taxes: {
            type: any;
        };
        timezone: {
            type: any;
            defaultValue: string;
            allowNull: boolean;
        };
        iana_timezone: {
            type: any;
            defaultValue: string;
            allowNull: boolean;
        };
        weight_unit: {
            type: any;
            values: string[];
            defaultValue: string;
        };
        live_mode: {
            type: any;
            defaultValue: any;
        };
    };
    static associate(models: any): void;
}
