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;
};
/** 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;
    };
    Address: {
        input: `${string}:0x${string}`;
        output: `${string}:0x${string}`;
    };
    Amount: {
        input: {
            unit?: string;
            value?: number;
        };
        output: {
            unit?: string;
            value?: number;
        };
    };
    Amount_Crypto: {
        input: {
            unit: string;
            value: string;
        };
        output: {
            unit: string;
            value: string;
        };
    };
    Amount_Currency: {
        input: {
            unit: string;
            value: string;
        };
        output: {
            unit: string;
            value: string;
        };
    };
    Amount_Fiat: {
        input: {
            unit: string;
            value: number;
        };
        output: {
            unit: string;
            value: number;
        };
    };
    Amount_Money: {
        input: number;
        output: number;
    };
    Amount_Percentage: {
        input: number;
        output: number;
    };
    Amount_Tokens: {
        input: number;
        output: number;
    };
    AttachmentRef: {
        input: `attachment://v${number}:${string}`;
        output: `attachment://v${number}:${string}`;
    };
    Currency: {
        input: string;
        output: string;
    };
    Date: {
        input: string;
        output: string;
    };
    DateTime: {
        input: string;
        output: string;
    };
    EmailAddress: {
        input: string;
        output: string;
    };
    EthereumAddress: {
        input: string;
        output: string;
    };
    OID: {
        input: string;
        output: string;
    };
    OLabel: {
        input: string;
        output: string;
    };
    PHID: {
        input: string;
        output: string;
    };
    URL: {
        input: string;
        output: string;
    };
    Unknown: {
        input: unknown;
        output: unknown;
    };
    Upload: {
        input: File;
        output: File;
    };
};
export type AddAttachmentInput = {
    fileName: Scalars["String"]["input"];
    fileRef: Scalars["AttachmentRef"]["input"];
    id: Scalars["OID"]["input"];
    uploadedAt: Scalars["DateTime"]["input"];
};
export type AddLineItemInput = {
    description: Scalars["String"]["input"];
    id: Scalars["OID"]["input"];
    quantity: Scalars["Float"]["input"];
    unitPrice: Scalars["Float"]["input"];
};
export type ApproveInvoiceInput = {
    reviewNote?: InputMaybe<Scalars["String"]["input"]>;
    reviewedAt: Scalars["DateTime"]["input"];
    reviewedBy: Scalars["String"]["input"];
};
export type InvoiceAttachment = {
    fileName: Scalars["String"]["output"];
    fileRef: Scalars["AttachmentRef"]["output"];
    id: Scalars["OID"]["output"];
    uploadedAt: Scalars["DateTime"]["output"];
};
export type InvoiceState = {
    attachments: Array<InvoiceAttachment>;
    currency: Scalars["String"]["output"];
    department: Maybe<Scalars["String"]["output"]>;
    description: Maybe<Scalars["String"]["output"]>;
    invoiceNumber: Maybe<Scalars["String"]["output"]>;
    lineItems: Array<LineItem>;
    paidAt: Maybe<Scalars["DateTime"]["output"]>;
    paidBy: Maybe<Scalars["String"]["output"]>;
    reviewNote: Maybe<Scalars["String"]["output"]>;
    reviewedAt: Maybe<Scalars["DateTime"]["output"]>;
    reviewedBy: Maybe<Scalars["String"]["output"]>;
    status: InvoiceStatus;
    submittedAt: Maybe<Scalars["DateTime"]["output"]>;
    submittedBy: Maybe<Scalars["String"]["output"]>;
    totalAmount: Scalars["Float"]["output"];
};
export type InvoiceStatus = "APPROVED" | "DRAFT" | "PAID" | "REJECTED" | "SUBMITTED" | "UNDER_REVIEW";
export type LineItem = {
    description: Scalars["String"]["output"];
    id: Scalars["OID"]["output"];
    quantity: Scalars["Float"]["output"];
    total: Scalars["Float"]["output"];
    unitPrice: Scalars["Float"]["output"];
};
export type MarkPaidInput = {
    paidAt: Scalars["DateTime"]["input"];
    paidBy: Scalars["String"]["input"];
};
export type RejectInvoiceInput = {
    reviewNote: Scalars["String"]["input"];
    reviewedAt: Scalars["DateTime"]["input"];
    reviewedBy: Scalars["String"]["input"];
};
export type RemoveAttachmentInput = {
    id: Scalars["OID"]["input"];
};
export type RemoveLineItemInput = {
    id: Scalars["OID"]["input"];
};
export type ReopenInvoiceInput = {
    _?: InputMaybe<Scalars["Boolean"]["input"]>;
};
export type SetInvoiceDetailsInput = {
    currency?: InputMaybe<Scalars["String"]["input"]>;
    department: Scalars["String"]["input"];
    description?: InputMaybe<Scalars["String"]["input"]>;
    invoiceNumber: Scalars["String"]["input"];
    submittedBy: Scalars["String"]["input"];
};
export type StartReviewInput = {
    reviewedBy: Scalars["String"]["input"];
};
export type SubmitInvoiceInput = {
    submittedAt: Scalars["DateTime"]["input"];
};
export type UpdateLineItemInput = {
    description?: InputMaybe<Scalars["String"]["input"]>;
    id: Scalars["OID"]["input"];
    quantity?: InputMaybe<Scalars["Float"]["input"]>;
    unitPrice?: InputMaybe<Scalars["Float"]["input"]>;
};
//# sourceMappingURL=types.d.ts.map