import { GraphQLClient } from 'graphql-request';
import * as Dom from 'graphql-request/dist/types.dom';
export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
export type Exact<T extends {
    [key: string]: unknown;
}> = {
    [K in keyof T]: T[K];
};
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
    [SubKey in K]?: Maybe<T[SubKey]>;
};
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
    [SubKey in K]: Maybe<T[SubKey]>;
};
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
    ID: string;
    String: string;
    Boolean: boolean;
    Int: number;
    Float: number;
    Map: any;
};
export type Consumption = {
    budget?: Maybe<Scalars['Int']>;
    overageEnabled: Scalars['Boolean'];
    used: Scalars['Int'];
};
export type Feature = {
    consumption?: Maybe<Consumption>;
    id: Scalars['String'];
    metadata?: Maybe<Scalars['Map']>;
    name: Scalars['String'];
    type: FeatureType;
    unitLabel?: Maybe<Scalars['String']>;
    unitLabelPlural?: Maybe<Scalars['String']>;
};
export declare enum FeatureType {
    Binary = "BINARY",
    Consumable = "CONSUMABLE"
}
export type Group = {
    email?: Maybe<Scalars['String']>;
    id: Scalars['String'];
    metadata?: Maybe<Scalars['Map']>;
    name?: Maybe<Scalars['String']>;
    subscriptions: Array<PackageSubscription>;
};
export type Package = {
    features: Array<Feature>;
    id: Scalars['String'];
    isAddon: Scalars['Boolean'];
    metadata?: Maybe<Scalars['Map']>;
    name: Scalars['String'];
};
export type PackageSubscription = {
    package: Package;
    status: SubscriptionStatus;
};
export type Query = {
    currentGroup: Group;
};
export declare enum SubscriptionStatus {
    Active = "ACTIVE",
    Cancelled = "CANCELLED",
    Incomplete = "INCOMPLETE",
    IncompleteExpired = "INCOMPLETE_EXPIRED",
    PastDue = "PAST_DUE",
    Trialing = "TRIALING",
    Unpaid = "UNPAID"
}
export type CurrentGroupQueryVariables = Exact<{
    [key: string]: never;
}>;
export type CurrentGroupQuery = {
    currentGroup: {
        id: string;
        name?: string | null;
        email?: string | null;
        metadata?: any | null;
        subscriptions: Array<{
            status: SubscriptionStatus;
            package: {
                id: string;
                name: string;
                isAddon: boolean;
                metadata?: any | null;
                features: Array<{
                    id: string;
                    name: string;
                    type: FeatureType;
                    metadata?: any | null;
                    unitLabel?: string | null;
                    unitLabelPlural?: string | null;
                    consumption?: {
                        used: number;
                        budget?: number | null;
                        overageEnabled: boolean;
                    } | null;
                }>;
            };
        }>;
    };
};
export declare const CurrentGroupDocument: import("graphql").DocumentNode;
export type SdkFunctionWrapper = <T>(action: (requestHeaders?: Record<string, string>) => Promise<T>, operationName: string, operationType?: string) => Promise<T>;
export declare function getSdk(client: GraphQLClient, withWrapper?: SdkFunctionWrapper): {
    CurrentGroup(variables?: CurrentGroupQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise<CurrentGroupQuery>;
};
export type Sdk = ReturnType<typeof getSdk>;
