import { CreateProductInput, GetProductQueryVariables, ListProductsQueryVariables, UpdateProductInput } from '../../gen/graphql';
import { AbowireGraphQLClient } from '../../graphql/graphql-client';
export declare class ProductApi {
    private graphQL;
    constructor(graphQL: AbowireGraphQLClient);
    create(input: CreateProductInput): Promise<{
        __typename?: "Product" | undefined;
        id: string;
        name: string;
        sku: string;
        currency: any;
        taxRateCode?: import("../../gen/graphql").TaxRateCode | null | undefined;
        metadata?: any;
        createdAt?: any;
        isActive: boolean;
        plan: {
            __typename?: "Plan" | undefined;
            billingDay?: number | null | undefined;
            billingTerms?: import("../../gen/graphql").BillingTerms | null | undefined;
            recurrency: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            };
            paymentTerms?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
            cancellationNotice?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
            maxDuration?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
            freeTrial?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
        };
        pricing: {
            __typename?: "Pricing" | undefined;
            description?: string | null | undefined;
            type: import("../../gen/graphql").PricingType;
            price?: number | null | undefined;
            unit?: string | null | undefined;
            strategy: import("../../gen/graphql").PricingStrategy;
            chargeOnce?: boolean | null | undefined;
            tiers: {
                __typename?: "PricingTier" | undefined;
                from: number;
                to?: number | null | undefined;
                price: number;
            }[];
        }[];
        licensing?: {
            __typename?: "Licensing" | undefined;
            isActive?: boolean | null | undefined;
            maxActivations?: number | null | undefined;
            expirationDate?: any;
            codeStrategy: import("../../gen/graphql").LicensingCodeStrategy;
            codeLength?: number | null | undefined;
            maxDuration?: {
                __typename?: "Timeframe" | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
                amount?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
        subscriptions: {
            __typename?: "SubscriptionList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Subscription" | undefined;
                id: string;
                product: {
                    __typename?: "Product" | undefined;
                    name: string;
                };
            }[];
        };
        addons: {
            __typename?: "ProductList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            }[];
        };
        canUpgradeTo: {
            __typename?: "ProductList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            }[];
        };
        canDowngradeTo: {
            __typename?: "ProductList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            }[];
        };
        nextProduct?: {
            __typename?: "Product" | undefined;
            id: string;
            name: string;
        } | null | undefined;
        capabilities?: {
            __typename?: "ProductCapability" | undefined;
            name: string;
            isActive: boolean;
            usageLimit?: ({
                __typename?: "SubscriptionUsage" | undefined;
                unit: string;
                amount: number;
            } | null)[] | null | undefined;
        }[] | null | undefined;
    }>;
    update(id: string, input: UpdateProductInput): Promise<{
        __typename?: "Product" | undefined;
        id: string;
        name: string;
        sku: string;
        currency: any;
        taxRateCode?: import("../../gen/graphql").TaxRateCode | null | undefined;
        metadata?: any;
        createdAt?: any;
        isActive: boolean;
        plan: {
            __typename?: "Plan" | undefined;
            billingDay?: number | null | undefined;
            billingTerms?: import("../../gen/graphql").BillingTerms | null | undefined;
            recurrency: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            };
            paymentTerms?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
            cancellationNotice?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
            maxDuration?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
            freeTrial?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
        };
        pricing: {
            __typename?: "Pricing" | undefined;
            description?: string | null | undefined;
            type: import("../../gen/graphql").PricingType;
            price?: number | null | undefined;
            unit?: string | null | undefined;
            strategy: import("../../gen/graphql").PricingStrategy;
            chargeOnce?: boolean | null | undefined;
            tiers: {
                __typename?: "PricingTier" | undefined;
                from: number;
                to?: number | null | undefined;
                price: number;
            }[];
        }[];
        licensing?: {
            __typename?: "Licensing" | undefined;
            isActive?: boolean | null | undefined;
            maxActivations?: number | null | undefined;
            expirationDate?: any;
            codeStrategy: import("../../gen/graphql").LicensingCodeStrategy;
            codeLength?: number | null | undefined;
            maxDuration?: {
                __typename?: "Timeframe" | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
                amount?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
        subscriptions: {
            __typename?: "SubscriptionList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Subscription" | undefined;
                id: string;
                product: {
                    __typename?: "Product" | undefined;
                    name: string;
                };
            }[];
        };
        addons: {
            __typename?: "ProductList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            }[];
        };
        canUpgradeTo: {
            __typename?: "ProductList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            }[];
        };
        canDowngradeTo: {
            __typename?: "ProductList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            }[];
        };
        nextProduct?: {
            __typename?: "Product" | undefined;
            id: string;
            name: string;
        } | null | undefined;
        capabilities?: {
            __typename?: "ProductCapability" | undefined;
            name: string;
            isActive: boolean;
            usageLimit?: ({
                __typename?: "SubscriptionUsage" | undefined;
                unit: string;
                amount: number;
            } | null)[] | null | undefined;
        }[] | null | undefined;
    }>;
    get(id: string, input?: Partial<GetProductQueryVariables>): Promise<{
        __typename?: "Product" | undefined;
        id: string;
        name: string;
        sku: string;
        currency: any;
        taxRateCode?: import("../../gen/graphql").TaxRateCode | null | undefined;
        metadata?: any;
        createdAt?: any;
        isActive: boolean;
        plan: {
            __typename?: "Plan" | undefined;
            billingDay?: number | null | undefined;
            billingTerms?: import("../../gen/graphql").BillingTerms | null | undefined;
            recurrency: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            };
            paymentTerms?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
            cancellationNotice?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
            maxDuration?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
            freeTrial?: {
                __typename?: "Timeframe" | undefined;
                amount?: number | null | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
            } | null | undefined;
        };
        pricing: {
            __typename?: "Pricing" | undefined;
            description?: string | null | undefined;
            type: import("../../gen/graphql").PricingType;
            price?: number | null | undefined;
            unit?: string | null | undefined;
            strategy: import("../../gen/graphql").PricingStrategy;
            chargeOnce?: boolean | null | undefined;
            tiers: {
                __typename?: "PricingTier" | undefined;
                from: number;
                to?: number | null | undefined;
                price: number;
            }[];
        }[];
        licensing?: {
            __typename?: "Licensing" | undefined;
            isActive?: boolean | null | undefined;
            maxActivations?: number | null | undefined;
            expirationDate?: any;
            codeStrategy: import("../../gen/graphql").LicensingCodeStrategy;
            codeLength?: number | null | undefined;
            maxDuration?: {
                __typename?: "Timeframe" | undefined;
                unit?: import("../../gen/graphql").TimeUnit | null | undefined;
                amount?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
        subscriptions: {
            __typename?: "SubscriptionList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Subscription" | undefined;
                id: string;
                product: {
                    __typename?: "Product" | undefined;
                    name: string;
                };
            }[];
        };
        addons: {
            __typename?: "ProductList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            }[];
        };
        canUpgradeTo: {
            __typename?: "ProductList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            }[];
        };
        canDowngradeTo: {
            __typename?: "ProductList" | undefined;
            count: number;
            total: number;
            cursor?: string | null | undefined;
            items: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            }[];
        };
        nextProduct?: {
            __typename?: "Product" | undefined;
            id: string;
            name: string;
        } | null | undefined;
        capabilities?: {
            __typename?: "ProductCapability" | undefined;
            name: string;
            isActive: boolean;
            usageLimit?: ({
                __typename?: "SubscriptionUsage" | undefined;
                unit: string;
                amount: number;
            } | null)[] | null | undefined;
        }[] | null | undefined;
    }>;
    list(input?: Partial<ListProductsQueryVariables>): Promise<{
        __typename?: "ProductList" | undefined;
        count: number;
        total: number;
        cursor?: string | null | undefined;
        items: {
            __typename?: "Product" | undefined;
            id: string;
            name: string;
            sku: string;
            currency: any;
            taxRateCode?: import("../../gen/graphql").TaxRateCode | null | undefined;
            metadata?: any;
            createdAt?: any;
            isActive: boolean;
            plan: {
                __typename?: "Plan" | undefined;
                billingDay?: number | null | undefined;
                billingTerms?: import("../../gen/graphql").BillingTerms | null | undefined;
                recurrency: {
                    __typename?: "Timeframe" | undefined;
                    amount?: number | null | undefined;
                    unit?: import("../../gen/graphql").TimeUnit | null | undefined;
                };
                paymentTerms?: {
                    __typename?: "Timeframe" | undefined;
                    amount?: number | null | undefined;
                    unit?: import("../../gen/graphql").TimeUnit | null | undefined;
                } | null | undefined;
                cancellationNotice?: {
                    __typename?: "Timeframe" | undefined;
                    amount?: number | null | undefined;
                    unit?: import("../../gen/graphql").TimeUnit | null | undefined;
                } | null | undefined;
                maxDuration?: {
                    __typename?: "Timeframe" | undefined;
                    amount?: number | null | undefined;
                    unit?: import("../../gen/graphql").TimeUnit | null | undefined;
                } | null | undefined;
                freeTrial?: {
                    __typename?: "Timeframe" | undefined;
                    amount?: number | null | undefined;
                    unit?: import("../../gen/graphql").TimeUnit | null | undefined;
                } | null | undefined;
            };
            pricing: {
                __typename?: "Pricing" | undefined;
                description?: string | null | undefined;
                type: import("../../gen/graphql").PricingType;
                price?: number | null | undefined;
                unit?: string | null | undefined;
                strategy: import("../../gen/graphql").PricingStrategy;
                chargeOnce?: boolean | null | undefined;
                tiers: {
                    __typename?: "PricingTier" | undefined;
                    from: number;
                    to?: number | null | undefined;
                    price: number;
                }[];
            }[];
            licensing?: {
                __typename?: "Licensing" | undefined;
                isActive?: boolean | null | undefined;
                maxActivations?: number | null | undefined;
                expirationDate?: any;
                codeStrategy: import("../../gen/graphql").LicensingCodeStrategy;
                codeLength?: number | null | undefined;
                maxDuration?: {
                    __typename?: "Timeframe" | undefined;
                    unit?: import("../../gen/graphql").TimeUnit | null | undefined;
                    amount?: number | null | undefined;
                } | null | undefined;
            } | null | undefined;
            subscriptions: {
                __typename?: "SubscriptionList" | undefined;
                count: number;
                total: number;
                cursor?: string | null | undefined;
                items: {
                    __typename?: "Subscription" | undefined;
                    id: string;
                    product: {
                        __typename?: "Product" | undefined;
                        name: string;
                    };
                }[];
            };
            addons: {
                __typename?: "ProductList" | undefined;
                count: number;
                total: number;
                cursor?: string | null | undefined;
                items: {
                    __typename?: "Product" | undefined;
                    id: string;
                    name: string;
                }[];
            };
            canUpgradeTo: {
                __typename?: "ProductList" | undefined;
                count: number;
                total: number;
                cursor?: string | null | undefined;
                items: {
                    __typename?: "Product" | undefined;
                    id: string;
                    name: string;
                }[];
            };
            canDowngradeTo: {
                __typename?: "ProductList" | undefined;
                count: number;
                total: number;
                cursor?: string | null | undefined;
                items: {
                    __typename?: "Product" | undefined;
                    id: string;
                    name: string;
                }[];
            };
            nextProduct?: {
                __typename?: "Product" | undefined;
                id: string;
                name: string;
            } | null | undefined;
            capabilities?: {
                __typename?: "ProductCapability" | undefined;
                name: string;
                isActive: boolean;
                usageLimit?: ({
                    __typename?: "SubscriptionUsage" | undefined;
                    unit: string;
                    amount: number;
                } | null)[] | null | undefined;
            }[] | null | undefined;
        }[];
    }>;
}
