import * as opapi from '@bpinternal/opapi';
export type State = opapi.State<'Invoice', 'x-workspace-id', 'invoice'>;
export declare const state: {
    operations: {
        getPlan: {
            name: string;
            description: string;
            method: "get";
            path: string;
            disableDefaultParameters: {
                "x-workspace-id": true;
            };
            parameters: {
                planId: {
                    in: "path";
                    type: "string";
                    description: string;
                };
            };
            response: {
                description: string;
                status: 200;
                schema: {
                    type: "object";
                    properties: {
                        id: {
                            type: "string";
                        };
                        name: {
                            type: "string";
                        };
                        description: {
                            type: "string";
                        };
                        providerProductId: {
                            type: "string";
                        };
                        prices: {
                            type: "object";
                            additionalProperties: {
                                type: "object";
                                properties: {
                                    providerPriceId: {
                                        type: "string";
                                    };
                                    amount: {
                                        type: "number";
                                    };
                                    currency: {
                                        type: "string";
                                        enum: string[];
                                    };
                                    interval: {
                                        type: "string";
                                        enum: string[];
                                    };
                                    metadata: {
                                        type: "object";
                                        additionalProperties: {
                                            type: "string";
                                        };
                                    };
                                };
                                required: string[];
                                additionalProperties: false;
                            };
                        };
                        features: {
                            type: "object";
                            additionalProperties: {
                                nullable: true;
                            };
                        };
                        metadata: {
                            type: "object";
                            additionalProperties: {
                                type: "string";
                            };
                        };
                    };
                    required: string[];
                    title: string;
                    additionalProperties: false;
                };
            };
        };
        listPlans: {
            name: string;
            description: string;
            method: "get";
            path: string;
            disableDefaultParameters: {
                "x-workspace-id": true;
            };
            response: {
                description: string;
                status: 200;
                schema: {
                    type: "array";
                    items: {
                        type: "object";
                        properties: {
                            id: {
                                type: "string";
                            };
                            name: {
                                type: "string";
                            };
                            description: {
                                type: "string";
                            };
                            providerProductId: {
                                type: "string";
                            };
                            prices: {
                                type: "object";
                                additionalProperties: {
                                    type: "object";
                                    properties: {
                                        providerPriceId: {
                                            type: "string";
                                        };
                                        amount: {
                                            type: "number";
                                        };
                                        currency: {
                                            type: "string";
                                            enum: string[];
                                        };
                                        interval: {
                                            type: "string";
                                            enum: string[];
                                        };
                                        metadata: {
                                            type: "object";
                                            additionalProperties: {
                                                type: "string";
                                            };
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            features: {
                                type: "object";
                                additionalProperties: {
                                    nullable: true;
                                };
                            };
                            metadata: {
                                type: "object";
                                additionalProperties: {
                                    type: "string";
                                };
                            };
                        };
                        required: string[];
                    };
                    title: string;
                };
            };
            parameters: {};
        };
        getAddon: {
            name: string;
            description: string;
            method: "get";
            path: string;
            disableDefaultParameters: {
                "x-workspace-id": true;
            };
            parameters: {
                addonId: {
                    in: "path";
                    type: "string";
                    description: string;
                };
            };
            response: {
                description: string;
                status: 200;
                schema: {
                    type: "object";
                    properties: {
                        id: {
                            type: "string";
                        };
                        name: {
                            type: "string";
                        };
                        description: {
                            type: "string";
                        };
                        providerProductId: {
                            type: "string";
                        };
                        prices: {
                            type: "object";
                            additionalProperties: {
                                type: "object";
                                properties: {
                                    providerPriceId: {
                                        type: "string";
                                    };
                                    amount: {
                                        type: "number";
                                    };
                                    currency: {
                                        type: "string";
                                        enum: string[];
                                    };
                                    interval: {
                                        type: "string";
                                        enum: string[];
                                    };
                                    metadata: {
                                        type: "object";
                                        additionalProperties: {
                                            type: "string";
                                        };
                                    };
                                };
                                required: string[];
                                additionalProperties: false;
                            };
                        };
                        feature: {
                            type: "string";
                            enum: string[];
                        };
                        increment: {
                            type: "number";
                        };
                        metadata: {
                            type: "object";
                            additionalProperties: {
                                type: "string";
                            };
                        };
                    };
                    required: string[];
                    title: string;
                    additionalProperties: false;
                };
            };
        };
        listAddons: {
            name: string;
            description: string;
            method: "get";
            path: string;
            disableDefaultParameters: {
                "x-workspace-id": true;
            };
            response: {
                description: string;
                status: 200;
                schema: {
                    type: "array";
                    items: {
                        type: "object";
                        properties: {
                            id: {
                                type: "string";
                            };
                            name: {
                                type: "string";
                            };
                            description: {
                                type: "string";
                            };
                            providerProductId: {
                                type: "string";
                            };
                            prices: {
                                type: "object";
                                additionalProperties: {
                                    type: "object";
                                    properties: {
                                        providerPriceId: {
                                            type: "string";
                                        };
                                        amount: {
                                            type: "number";
                                        };
                                        currency: {
                                            type: "string";
                                            enum: string[];
                                        };
                                        interval: {
                                            type: "string";
                                            enum: string[];
                                        };
                                        metadata: {
                                            type: "object";
                                            additionalProperties: {
                                                type: "string";
                                            };
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            feature: {
                                type: "string";
                                enum: string[];
                            };
                            increment: {
                                type: "number";
                            };
                            metadata: {
                                type: "object";
                                additionalProperties: {
                                    type: "string";
                                };
                            };
                        };
                        required: string[];
                    };
                    title: string;
                };
            };
            parameters: {};
        };
        listInvoices: {
            name: string;
            description: string;
            method: "get";
            path: string;
            parameters: {
                nextToken: {
                    in: "query";
                    description: string;
                    type: "string";
                };
                "x-workspace-id": {
                    in: "header";
                    type: "string";
                    description: string;
                    required: true;
                };
            };
            response: {
                description: string;
                status: 200;
                schema: {
                    type: "object";
                    properties: {
                        invoices: {
                            type: "array";
                            items: {
                                type: "object";
                                properties: {
                                    id: {
                                        type: "string";
                                    };
                                    amount: {
                                        type: "number";
                                    };
                                    currency: {
                                        type: "string";
                                    };
                                    status: {
                                        type: "string";
                                        enum: string[];
                                    };
                                    createdAt: {
                                        type: "string";
                                    };
                                    periodStart: {
                                        type: "string";
                                        nullable: true;
                                    };
                                    periodEnd: {
                                        type: "string";
                                        nullable: true;
                                    };
                                    dueDate: {
                                        type: "string";
                                        nullable: true;
                                    };
                                    pdfUrl: {
                                        type: "string";
                                        nullable: true;
                                    };
                                };
                                required: string[];
                            };
                        };
                        meta: {
                            type: "object";
                            properties: {
                                nextToken: {
                                    type: "string";
                                    description: string;
                                };
                            };
                            additionalProperties: false;
                        };
                    };
                    required: string[];
                    description: string;
                    title: string;
                    additionalProperties: false;
                };
            };
        };
        payInvoice: {
            name: string;
            description: string;
            method: "post";
            path: string;
            parameters: {
                invoiceId: {
                    in: "path";
                    type: "string";
                    description: string;
                };
                "x-workspace-id": {
                    in: "header";
                    type: "string";
                    description: string;
                    required: true;
                };
            };
            requestBody: {
                description: string;
                schema: {
                    type: "object";
                    properties: {
                        idempotencyKey: {
                            type: "string";
                        };
                    };
                    title: string;
                    additionalProperties: false;
                };
            };
            response: {
                description: string;
                status: 200;
                schema: {
                    type: "object";
                    properties: {
                        id: {
                            type: "string";
                        };
                        amount: {
                            type: "number";
                        };
                        currency: {
                            type: "string";
                        };
                        status: {
                            type: "string";
                            enum: string[];
                        };
                        createdAt: {
                            type: "string";
                        };
                        periodStart: {
                            type: "string";
                            nullable: true;
                        };
                        periodEnd: {
                            type: "string";
                            nullable: true;
                        };
                        dueDate: {
                            type: "string";
                            nullable: true;
                        };
                        pdfUrl: {
                            type: "string";
                            nullable: true;
                        };
                    };
                    required: string[];
                    title: string;
                    additionalProperties: false;
                };
            };
        };
        getPaymentMethod: {
            name: string;
            description: string;
            method: "get";
            path: string;
            response: {
                description: string;
                status: 200;
                schema: {
                    type: "object";
                    properties: {
                        paymentMethod: {
                            type: "object";
                            properties: {
                                id: {
                                    type: "string";
                                };
                                type: {
                                    type: "string";
                                };
                                card: {
                                    type: "object";
                                    properties: {
                                        brand: {
                                            type: "string";
                                        };
                                        lastFour: {
                                            type: "string";
                                        };
                                        expMonth: {
                                            type: "number";
                                        };
                                        expYear: {
                                            type: "number";
                                        };
                                    };
                                    required: string[];
                                    nullable: true;
                                    additionalProperties: false;
                                };
                            };
                            required: string[];
                            nullable: true;
                            additionalProperties: false;
                        };
                    };
                    required: string[];
                    title: string;
                    additionalProperties: false;
                };
            };
            parameters: {
                "x-workspace-id": {
                    in: "header";
                    type: "string";
                    description: string;
                    required: true;
                };
            };
        };
        setPaymentMethod: {
            name: string;
            description: string;
            method: "post";
            path: string;
            requestBody: {
                description: string;
                schema: {
                    type: "object";
                    properties: {
                        paymentMethodId: {
                            type: "string";
                            description: string;
                        };
                    };
                    required: string[];
                    title: string;
                    additionalProperties: false;
                };
            };
            response: {
                description: string;
                status: 200;
                schema: {
                    type: "object";
                    properties: {
                        id: {
                            type: "string";
                        };
                        type: {
                            type: "string";
                        };
                        card: {
                            type: "object";
                            properties: {
                                brand: {
                                    type: "string";
                                };
                                lastFour: {
                                    type: "string";
                                };
                                expMonth: {
                                    type: "number";
                                };
                                expYear: {
                                    type: "number";
                                };
                            };
                            required: string[];
                            nullable: true;
                            additionalProperties: false;
                        };
                    };
                    required: string[];
                    title: string;
                    additionalProperties: false;
                };
            };
            parameters: {
                "x-workspace-id": {
                    in: "header";
                    type: "string";
                    description: string;
                    required: true;
                };
            };
        };
        createPaymentMethodIntent: {
            name: string;
            description: string;
            method: "post";
            path: string;
            requestBody: {
                description: string;
                schema: {
                    type: "object";
                    title: string;
                    additionalProperties: false;
                };
            };
            response: {
                description: string;
                status: 200;
                schema: {
                    type: "object";
                    properties: {
                        clientSecret: {
                            type: "string";
                        };
                    };
                    required: string[];
                    title: string;
                    additionalProperties: false;
                };
            };
            parameters: {
                "x-workspace-id": {
                    in: "header";
                    type: "string";
                    description: string;
                    required: true;
                };
            };
        };
    };
    metadata: {
        title: string;
        description: string;
        server: string;
        version: string;
        prefix: string;
    };
    defaultParameters: {
        "x-workspace-id": {
            in: "header";
            type: "string";
            description: string;
            required: true;
        };
    };
    errors: ({
        status: 500;
        type: string;
        description: string;
    } | {
        status: 401;
        type: string;
        description: string;
    } | {
        status: 403;
        type: string;
        description: string;
    } | {
        status: 413;
        type: string;
        description: string;
    } | {
        status: 400;
        type: string;
        description: string;
    } | {
        status: 415;
        type: string;
        description: string;
    } | {
        status: 405;
        type: string;
        description: string;
    } | {
        status: 404;
        type: string;
        description: string;
    } | {
        status: 409;
        type: string;
        description: string;
    } | {
        status: 410;
        type: string;
        description: string;
    } | {
        status: 429;
        type: string;
        description: string;
    } | {
        status: 402;
        type: string;
        description: string;
    })[];
    refs: {
        parameters: {};
        requestBodies: {
            payInvoiceBody: true;
            setPaymentMethodBody: true;
            createPaymentMethodIntentBody: true;
        };
        responses: {
            getPlanResponse: true;
            listPlansResponse: true;
            getAddonResponse: true;
            listAddonsResponse: true;
            listInvoicesResponse: true;
            payInvoiceResponse: true;
            getPaymentMethodResponse: true;
            setPaymentMethodResponse: true;
            createPaymentMethodIntentResponse: true;
        };
        schemas: {
            Invoice: true;
        };
    };
    schemas: {
        Invoice: {
            section: "invoice";
            schema: {
                type: "object";
                properties: {
                    id: {
                        type: "string";
                    };
                    amount: {
                        type: "number";
                    };
                    currency: {
                        type: "string";
                    };
                    status: {
                        type: "string";
                        enum: string[];
                    };
                    createdAt: {
                        type: "string";
                    };
                    periodStart: {
                        type: "string";
                        nullable: true;
                    };
                    periodEnd: {
                        type: "string";
                        nullable: true;
                    };
                    dueDate: {
                        type: "string";
                        nullable: true;
                    };
                    pdfUrl: {
                        type: "string";
                        nullable: true;
                    };
                };
                required: string[];
                description: string;
                additionalProperties: false;
            };
        };
    };
    sections: {
        description: string;
        title: string;
        name: "invoice";
        operations: never[];
        schema: string;
    }[];
    options: {
        allowUnions: false;
    };
    security: "BearerAuth"[];
};
