export declare type Maybe<T> = T;
export declare type InputMaybe<T> = T;
export declare type Exact<T extends {
    [key: string]: unknown;
}> = {
    [K in keyof T]: T[K];
};
export declare type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
    [SubKey in K]?: Maybe<T[SubKey]>;
};
export declare 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 declare type Scalars = {
    ID: string;
    String: string;
    Boolean: boolean;
    Int: number;
    Float: number;
};
export declare type Address = {
    address1: Maybe<Scalars['String']>;
    address2: Maybe<Scalars['String']>;
    city: Maybe<Scalars['String']>;
    country: Maybe<Scalars['String']>;
    postcode: Maybe<Scalars['String']>;
    state: Maybe<Scalars['String']>;
};
export declare type Adoption = {
    policy: Maybe<Scalars['String']>;
    url: Maybe<Scalars['String']>;
};
export declare enum AgeListItem {
    ADULT = "ADULT",
    BABY = "BABY",
    SENIOR = "SENIOR",
    YOUNG = "YOUNG"
}
export declare type Animal = {
    age: Maybe<Scalars['String']>;
    attributes: Maybe<Attributes>;
    breeds: Maybe<Breeds2>;
    coat: Maybe<Scalars['String']>;
    colors: Maybe<Colors2>;
    contact: Maybe<Contact>;
    description: Maybe<Scalars['String']>;
    /** Distance in miles to location provided in query. Null if not provided */
    distance: Maybe<Scalars['Float']>;
    environment: Maybe<Environment>;
    gender: Maybe<Scalars['String']>;
    id: Maybe<Scalars['ID']>;
    links: Maybe<Links3>;
    name: Maybe<Scalars['String']>;
    organization: Maybe<Organization>;
    photos: Maybe<Array<Maybe<Photo>>>;
    publishedAt: Maybe<Scalars['String']>;
    size: Maybe<Scalars['String']>;
    species: Maybe<Scalars['String']>;
    /** Adoption status */
    status: Maybe<Scalars['String']>;
    tags: Maybe<Array<Maybe<Scalars['String']>>>;
    type: Maybe<Scalars['String']>;
    url: Maybe<Scalars['String']>;
};
export declare type AnimalBreed = {
    links: Maybe<Links2>;
    name: Maybe<Scalars['String']>;
};
export declare type AnimalType = {
    coats: Maybe<Array<Maybe<Scalars['String']>>>;
    colors: Maybe<Array<Maybe<Scalars['String']>>>;
    genders: Maybe<Array<Maybe<Scalars['String']>>>;
    links: Maybe<Links>;
    name: Maybe<Scalars['String']>;
};
export declare type Animals = {
    animals: Maybe<Array<Maybe<Animal>>>;
    pagination: Maybe<Pagination>;
};
export declare type Attributes = {
    declawed: Maybe<Scalars['Boolean']>;
    houseTrained: Maybe<Scalars['Boolean']>;
    shotsCurrent: Maybe<Scalars['Boolean']>;
    spayedNeutered: Maybe<Scalars['Boolean']>;
    specialNeeds: Maybe<Scalars['Boolean']>;
};
export declare type Breeds2 = {
    mixed: Maybe<Scalars['Boolean']>;
    primary: Maybe<Scalars['String']>;
    secondary: Maybe<Scalars['String']>;
    unknown: Maybe<Scalars['Boolean']>;
};
export declare enum CoatListItem {
    CURLY = "CURLY",
    HAIRLESS = "HAIRLESS",
    LONG = "LONG",
    MEDIUM = "MEDIUM",
    SHORT = "SHORT",
    WIRE = "WIRE"
}
export declare type Colors2 = {
    primary: Maybe<Scalars['String']>;
    secondary: Maybe<Scalars['String']>;
    tertiary: Maybe<Scalars['String']>;
};
export declare type Contact = {
    address: Maybe<Address>;
    email: Maybe<Scalars['String']>;
    phone: Maybe<Scalars['String']>;
};
export declare type Environment = {
    cats: Maybe<Scalars['Boolean']>;
    children: Maybe<Scalars['Boolean']>;
    dogs: Maybe<Scalars['Boolean']>;
};
export declare enum GenderListItem {
    FEMALE = "FEMALE",
    MALE = "MALE",
    UNKNOWN = "UNKNOWN"
}
export declare type Hours = {
    friday: Maybe<Scalars['String']>;
    monday: Maybe<Scalars['String']>;
    saturday: Maybe<Scalars['String']>;
    sunday: Maybe<Scalars['String']>;
    thursday: Maybe<Scalars['String']>;
    tuesday: Maybe<Scalars['String']>;
    wednesday: Maybe<Scalars['String']>;
};
export declare type Link = {
    /** Relative URL to linked resource */
    href: Maybe<Scalars['String']>;
};
export declare type LinkNullable = {
    /** Relative URL to linked resource */
    href: Maybe<Scalars['String']>;
};
export declare type Links = {
    breeds: Maybe<Link>;
    self: Maybe<Link>;
};
export declare type Links2 = {
    type: Maybe<Link>;
};
export declare type Links3 = {
    organization: Maybe<Link>;
    self: Maybe<Link>;
    type: Maybe<Link>;
};
export declare type Links4 = {
    next: Maybe<LinkNullable>;
    previous: Maybe<LinkNullable>;
};
export declare type Links5 = {
    animals: Maybe<Link>;
    self: Maybe<Link>;
};
export declare type Organization = {
    address: Maybe<Address>;
    adoption: Maybe<Adoption>;
    /** Distance in miles to location provided in query. Null if not provided */
    distance: Maybe<Scalars['Float']>;
    email: Maybe<Scalars['String']>;
    hours: Maybe<Hours>;
    id: Maybe<Scalars['ID']>;
    links: Maybe<Links5>;
    missionStatement: Maybe<Scalars['String']>;
    name: Maybe<Scalars['String']>;
    phone: Maybe<Scalars['String']>;
    photos: Maybe<Array<Maybe<Photo>>>;
    socialMedia: Maybe<SocialMedia>;
    url: Maybe<Scalars['String']>;
    website: Maybe<Scalars['String']>;
};
export declare type Organizations = {
    organizations: Maybe<Array<Maybe<Organization>>>;
    pagination: Maybe<Pagination>;
};
export declare type Pagination = {
    countPerPage: Maybe<Scalars['Int']>;
    currentPage: Maybe<Scalars['Int']>;
    links: Maybe<Links4>;
    totalCount: Maybe<Scalars['Int']>;
    totalPages: Maybe<Scalars['Int']>;
};
export declare type Photo = {
    full: Maybe<Scalars['String']>;
    large: Maybe<Scalars['String']>;
    medium: Maybe<Scalars['String']>;
    small: Maybe<Scalars['String']>;
};
export declare type Query = {
    /**
     * Get Animal
     *
     * Equivalent to GET /animals/{id}
     */
    animal: Maybe<Animal>;
    /**
     * Get Animals
     *
     * Equivalent to GET /animals
     */
    animals: Maybe<Animals>;
    /**
     * Get Organization
     *
     * Equivalent to GET /organizations/{id}
     */
    organization: Maybe<Organization>;
    /**
     * Get Organizations
     *
     * Equivalent to GET /organizations
     */
    organizations: Maybe<Organizations>;
    /**
     * Get Animal Type
     *
     * Equivalent to GET /types/{type}
     */
    type: Maybe<Type>;
    /**
     * Get Animal Breeds
     *
     * Equivalent to GET /types/{type}/breeds
     */
    typeBreeds: Maybe<TypeBreeds>;
    /**
     * Get Animal Types
     *
     * Equivalent to GET /types
     */
    types: Maybe<Types>;
};
export declare type QueryAnimalArgs = {
    id: Scalars['ID'];
};
export declare type QueryAnimalsArgs = {
    age?: InputMaybe<Array<InputMaybe<AgeListItem>>>;
    breed?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
    coat?: InputMaybe<Array<InputMaybe<CoatListItem>>>;
    color?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
    distance?: InputMaybe<Scalars['Int']>;
    gender?: InputMaybe<Array<InputMaybe<GenderListItem>>>;
    limit?: InputMaybe<Scalars['Int']>;
    location?: InputMaybe<Scalars['String']>;
    name?: InputMaybe<Scalars['String']>;
    organization?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
    page?: InputMaybe<Scalars['Int']>;
    size?: InputMaybe<Array<InputMaybe<SizeListItem>>>;
    sort?: InputMaybe<Sort>;
    status?: InputMaybe<Status>;
    type?: InputMaybe<Type2>;
};
export declare type QueryOrganizationArgs = {
    id: Scalars['ID'];
};
export declare type QueryOrganizationsArgs = {
    country?: InputMaybe<Scalars['String']>;
    distance?: InputMaybe<Scalars['Int']>;
    limit?: InputMaybe<Scalars['Int']>;
    location?: InputMaybe<Scalars['String']>;
    name?: InputMaybe<Scalars['String']>;
    page?: InputMaybe<Scalars['Int']>;
    query?: InputMaybe<Scalars['String']>;
    sort?: InputMaybe<Sort2>;
    state?: InputMaybe<Scalars['String']>;
};
export declare type QueryTypeArgs = {
    type: Scalars['String'];
};
export declare type QueryTypeBreedsArgs = {
    type: Scalars['String'];
};
export declare enum SizeListItem {
    EXTRA_LARGE = "EXTRA_LARGE",
    LARGE = "LARGE",
    MEDIUM = "MEDIUM",
    SMALL = "SMALL"
}
export declare type SocialMedia = {
    facebook: Maybe<Scalars['String']>;
    instagram: Maybe<Scalars['String']>;
    pinterest: Maybe<Scalars['String']>;
    twitter: Maybe<Scalars['String']>;
    youtube: Maybe<Scalars['String']>;
};
export declare enum Sort {
    DISTANCE = "DISTANCE",
    RANDOM = "RANDOM",
    RECENT = "RECENT",
    _DISTANCE = "_DISTANCE",
    _RECENT = "_RECENT"
}
export declare enum Sort2 {
    COUNTRY = "COUNTRY",
    DISTANCE = "DISTANCE",
    NAME = "NAME",
    STATE = "STATE",
    _COUNTRY = "_COUNTRY",
    _DISTANCE = "_DISTANCE",
    _NAME = "_NAME",
    _STATE = "_STATE"
}
export declare enum Status {
    ADOPTABLE = "ADOPTABLE",
    ADOPTED = "ADOPTED",
    FOUND = "FOUND"
}
export declare type Type = {
    type: Maybe<AnimalType>;
};
export declare enum Type2 {
    BARNYARD = "BARNYARD",
    BIRD = "BIRD",
    CAT = "CAT",
    DOG = "DOG",
    HORSE = "HORSE",
    RABBIT = "RABBIT",
    SCALES_FINS_OTHER = "SCALES_FINS_OTHER",
    SMALL_FURRY = "SMALL_FURRY"
}
export declare type TypeBreeds = {
    breeds: Maybe<Array<Maybe<AnimalBreed>>>;
};
export declare type Types = {
    types: Maybe<Array<Maybe<AnimalType>>>;
};
