import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from 'graphql';
import { IndexingContext } from '../interfaces.js';
export type Maybe<T> = T | null | undefined;
export type InputMaybe<T> = T | null | undefined;
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]>;
};
export type MakeEmpty<T extends {
    [key: string]: unknown;
}, K extends keyof T> = {
    [_ in K]?: never;
};
export type Incremental<T> = T | {
    [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;
};
export type RequireFields<T, K extends keyof T> = Omit<T, K> & {
    [P in K]-?: NonNullable<T[P]>;
};
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
    ID: {
        input: string;
        output: string;
    };
    String: {
        input: string;
        output: string;
    };
    Boolean: {
        input: boolean;
        output: boolean;
    };
    Int: {
        input: number;
        output: number;
    };
    Float: {
        input: number;
        output: number;
    };
    GoogleProtobufAnyValue: {
        input: any;
        output: any;
    };
};
export type Mutation = {
    __typename?: 'Mutation';
    indexing: IndexingMutation;
};
export type IndexingMutation = {
    __typename?: 'IndexingMutation';
    search: IndexingSearchMutation;
};
export type IndexingSearchMutation = {
    __typename?: 'IndexingSearchMutation';
    Search?: Maybe<ProtoIoRestorecommerceSearchSearchResponse>;
};
export type IndexingSearchMutationSearchArgs = {
    input: IIoRestorecommerceSearchSearchRequest;
};
export type ProtoIoRestorecommerceSearchSearchResponse = {
    __typename?: 'ProtoIoRestorecommerceSearchSearchResponse';
    details?: Maybe<IoRestorecommerceSearchSearchResponse>;
};
export type IoRestorecommerceSearchSearchResponse = {
    __typename?: 'IoRestorecommerceSearchSearchResponse';
    data?: Maybe<Array<GoogleProtobufAny>>;
};
export type GoogleProtobufAny = {
    __typename?: 'GoogleProtobufAny';
    typeUrl?: Maybe<Scalars['String']['output']>;
    value?: Maybe<Scalars['GoogleProtobufAnyValue']['output']>;
};
export type IIoRestorecommerceSearchSearchRequest = {
    collection?: InputMaybe<Scalars['String']['input']>;
    text?: InputMaybe<Scalars['String']['input']>;
    acls?: InputMaybe<Array<Scalars['String']['input']>>;
};
export type WithIndex<TObject> = TObject & Record<string, any>;
export type ResolversObject<TObject> = WithIndex<TObject>;
export type ResolverTypeWrapper<T> = Promise<T> | T;
export type ResolverWithResolve<TResult, TParent, TContext, TArgs> = {
    resolve: ResolverFn<TResult, TParent, TContext, TArgs>;
};
export type Resolver<TResult, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>, TArgs = Record<PropertyKey, never>> = ResolverFn<TResult, TParent, TContext, TArgs> | ResolverWithResolve<TResult, TParent, TContext, TArgs>;
export type ResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => Promise<TResult> | TResult;
export type SubscriptionSubscribeFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => AsyncIterable<TResult> | Promise<AsyncIterable<TResult>>;
export type SubscriptionResolveFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => TResult | Promise<TResult>;
export interface SubscriptionSubscriberObject<TResult, TKey extends string, TParent, TContext, TArgs> {
    subscribe: SubscriptionSubscribeFn<{
        [key in TKey]: TResult;
    }, TParent, TContext, TArgs>;
    resolve?: SubscriptionResolveFn<TResult, {
        [key in TKey]: TResult;
    }, TContext, TArgs>;
}
export interface SubscriptionResolverObject<TResult, TParent, TContext, TArgs> {
    subscribe: SubscriptionSubscribeFn<any, TParent, TContext, TArgs>;
    resolve: SubscriptionResolveFn<TResult, any, TContext, TArgs>;
}
export type SubscriptionObject<TResult, TKey extends string, TParent, TContext, TArgs> = SubscriptionSubscriberObject<TResult, TKey, TParent, TContext, TArgs> | SubscriptionResolverObject<TResult, TParent, TContext, TArgs>;
export type SubscriptionResolver<TResult, TKey extends string, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>, TArgs = Record<PropertyKey, never>> = ((...args: any[]) => SubscriptionObject<TResult, TKey, TParent, TContext, TArgs>) | SubscriptionObject<TResult, TKey, TParent, TContext, TArgs>;
export type TypeResolveFn<TTypes, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (parent: TParent, context: TContext, info: GraphQLResolveInfo) => Maybe<TTypes> | Promise<Maybe<TTypes>>;
export type IsTypeOfResolverFn<T = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (obj: T, context: TContext, info: GraphQLResolveInfo) => boolean | Promise<boolean>;
export type NextResolverFn<T> = () => Promise<T>;
export type DirectiveResolverFn<TResult = Record<PropertyKey, never>, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>, TArgs = Record<PropertyKey, never>> = (next: NextResolverFn<TResult>, parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => TResult | Promise<TResult>;
/** Mapping between all available schema types and the resolvers types */
export type ResolversTypes = ResolversObject<{
    Mutation: ResolverTypeWrapper<Record<PropertyKey, never>>;
    IndexingMutation: ResolverTypeWrapper<IndexingMutation>;
    IndexingSearchMutation: ResolverTypeWrapper<IndexingSearchMutation>;
    ProtoIoRestorecommerceSearchSearchResponse: ResolverTypeWrapper<ProtoIoRestorecommerceSearchSearchResponse>;
    IoRestorecommerceSearchSearchResponse: ResolverTypeWrapper<IoRestorecommerceSearchSearchResponse>;
    GoogleProtobufAny: ResolverTypeWrapper<GoogleProtobufAny>;
    String: ResolverTypeWrapper<Scalars['String']['output']>;
    GoogleProtobufAnyValue: ResolverTypeWrapper<Scalars['GoogleProtobufAnyValue']['output']>;
    IIoRestorecommerceSearchSearchRequest: IIoRestorecommerceSearchSearchRequest;
    Boolean: ResolverTypeWrapper<Scalars['Boolean']['output']>;
}>;
/** Mapping between all available schema types and the resolvers parents */
export type ResolversParentTypes = ResolversObject<{
    Mutation: Record<PropertyKey, never>;
    IndexingMutation: IndexingMutation;
    IndexingSearchMutation: IndexingSearchMutation;
    ProtoIoRestorecommerceSearchSearchResponse: ProtoIoRestorecommerceSearchSearchResponse;
    IoRestorecommerceSearchSearchResponse: IoRestorecommerceSearchSearchResponse;
    GoogleProtobufAny: GoogleProtobufAny;
    String: Scalars['String']['output'];
    GoogleProtobufAnyValue: Scalars['GoogleProtobufAnyValue']['output'];
    IIoRestorecommerceSearchSearchRequest: IIoRestorecommerceSearchSearchRequest;
    Boolean: Scalars['Boolean']['output'];
}>;
export type MutationResolvers<ContextType = IndexingContext, ParentType extends ResolversParentTypes['Mutation'] = ResolversParentTypes['Mutation']> = ResolversObject<{
    indexing?: Resolver<ResolversTypes['IndexingMutation'], ParentType, ContextType>;
}>;
export type IndexingMutationResolvers<ContextType = IndexingContext, ParentType extends ResolversParentTypes['IndexingMutation'] = ResolversParentTypes['IndexingMutation']> = ResolversObject<{
    search?: Resolver<ResolversTypes['IndexingSearchMutation'], ParentType, ContextType>;
}>;
export type IndexingSearchMutationResolvers<ContextType = IndexingContext, ParentType extends ResolversParentTypes['IndexingSearchMutation'] = ResolversParentTypes['IndexingSearchMutation']> = ResolversObject<{
    Search?: Resolver<Maybe<ResolversTypes['ProtoIoRestorecommerceSearchSearchResponse']>, ParentType, ContextType, RequireFields<IndexingSearchMutationSearchArgs, 'input'>>;
}>;
export type ProtoIoRestorecommerceSearchSearchResponseResolvers<ContextType = IndexingContext, ParentType extends ResolversParentTypes['ProtoIoRestorecommerceSearchSearchResponse'] = ResolversParentTypes['ProtoIoRestorecommerceSearchSearchResponse']> = ResolversObject<{
    details?: Resolver<Maybe<ResolversTypes['IoRestorecommerceSearchSearchResponse']>, ParentType, ContextType>;
}>;
export type IoRestorecommerceSearchSearchResponseResolvers<ContextType = IndexingContext, ParentType extends ResolversParentTypes['IoRestorecommerceSearchSearchResponse'] = ResolversParentTypes['IoRestorecommerceSearchSearchResponse']> = ResolversObject<{
    data?: Resolver<Maybe<Array<ResolversTypes['GoogleProtobufAny']>>, ParentType, ContextType>;
}>;
export type GoogleProtobufAnyResolvers<ContextType = IndexingContext, ParentType extends ResolversParentTypes['GoogleProtobufAny'] = ResolversParentTypes['GoogleProtobufAny']> = ResolversObject<{
    typeUrl?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
    value?: Resolver<Maybe<ResolversTypes['GoogleProtobufAnyValue']>, ParentType, ContextType>;
}>;
export interface GoogleProtobufAnyValueScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes['GoogleProtobufAnyValue'], any> {
    name: 'GoogleProtobufAnyValue';
}
export type Resolvers<ContextType = IndexingContext> = ResolversObject<{
    Mutation?: MutationResolvers<ContextType>;
    IndexingMutation?: IndexingMutationResolvers<ContextType>;
    IndexingSearchMutation?: IndexingSearchMutationResolvers<ContextType>;
    ProtoIoRestorecommerceSearchSearchResponse?: ProtoIoRestorecommerceSearchSearchResponseResolvers<ContextType>;
    IoRestorecommerceSearchSearchResponse?: IoRestorecommerceSearchSearchResponseResolvers<ContextType>;
    GoogleProtobufAny?: GoogleProtobufAnyResolvers<ContextType>;
    GoogleProtobufAnyValue?: GraphQLScalarType;
}>;
//# sourceMappingURL=schema.generated.d.ts.map