import { createValidatedOpenApiRouter } from '@backstage/backend-openapi-utils';
export declare const spec: {
    readonly openapi: "3.0.3";
    readonly info: {
        readonly title: "todo";
        readonly version: "1";
        readonly description: "The Backstage backend plugin that provides source code todo comment browsing.";
        readonly license: {
            readonly name: "Apache-2.0";
            readonly url: "http://www.apache.org/licenses/LICENSE-2.0.html";
        };
        readonly contact: {};
    };
    readonly servers: readonly [{
        readonly url: "/";
    }];
    readonly components: {
        readonly examples: {};
        readonly headers: {};
        readonly parameters: {};
        readonly requestBodies: {};
        readonly responses: {};
        readonly schemas: {
            readonly TodoItem: {
                readonly type: "object";
                readonly properties: {
                    readonly text: {
                        readonly type: "string";
                        readonly description: "The contents of the TODO comment";
                    };
                    readonly tag: {
                        readonly type: "string";
                        readonly description: "The tag used, e.g. TODO, FIXME";
                    };
                    readonly author: {
                        readonly type: "string";
                        readonly description: "References author, if any";
                    };
                    readonly viewUrl: {
                        readonly type: "string";
                        readonly description: "URL used to view the file";
                    };
                    readonly lineNumber: {
                        readonly type: "integer";
                        readonly description: "The line number of the file that the TODO occurs at";
                    };
                    readonly repoFilePath: {
                        readonly type: "string";
                        readonly description: "The path of the file containing the TODO within the repo";
                    };
                };
                readonly required: readonly ["text", "tag"];
                readonly additionalProperties: false;
            };
        };
        readonly securitySchemes: {
            readonly JWT: {
                readonly type: "http";
                readonly scheme: "bearer";
                readonly bearerFormat: "JWT";
            };
        };
    };
    readonly paths: {
        readonly '/v1/todos': {
            readonly get: {
                readonly operationId: "ListTodos";
                readonly responses: {
                    readonly '200': {
                        readonly description: "Ok";
                        readonly content: {
                            readonly 'application/json': {
                                readonly schema: {
                                    readonly type: "object";
                                    readonly properties: {
                                        readonly items: {
                                            readonly type: "array";
                                            readonly items: {
                                                readonly $ref: "#/components/schemas/TodoItem";
                                            };
                                        };
                                        readonly totalCount: {
                                            readonly type: "integer";
                                        };
                                        readonly offset: {
                                            readonly type: "integer";
                                        };
                                        readonly limit: {
                                            readonly type: "integer";
                                        };
                                    };
                                    readonly required: readonly ["items", "totalCount", "offset", "limit"];
                                    readonly additionalProperties: false;
                                };
                            };
                        };
                    };
                    readonly '400': {
                        readonly description: "Bad request";
                        readonly content: {
                            readonly 'application/json': {
                                readonly schema: {
                                    readonly type: "object";
                                    readonly properties: {
                                        readonly error: {
                                            readonly type: "object";
                                            readonly properties: {
                                                readonly message: {
                                                    readonly type: "string";
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                        };
                    };
                };
                readonly security: readonly [{}, {
                    readonly JWT: readonly [];
                }];
                readonly parameters: readonly [{
                    readonly name: "entity";
                    readonly in: "query";
                    readonly required: false;
                    readonly allowReserved: true;
                    readonly schema: {
                        readonly type: "string";
                        readonly minLength: 1;
                        readonly description: "A reference to the entity to list TODO items for";
                    };
                }, {
                    readonly name: "orderBy";
                    readonly in: "query";
                    readonly required: false;
                    readonly schema: {
                        readonly type: "string";
                        readonly pattern: "^(text|tag|author|viewUrl|repoFilePath)=(asc|desc)$";
                        readonly description: "The field and direction used to sort the listed TODO items";
                    };
                }, {
                    readonly name: "filter";
                    readonly in: "query";
                    readonly required: false;
                    readonly allowReserved: true;
                    readonly schema: {
                        readonly type: "array";
                        readonly description: "A list of filters used to narrow down the listed TODO items";
                        readonly items: {
                            readonly type: "string";
                            readonly pattern: "^(text|tag|author|viewUrl|repoFilePath)=.+$";
                        };
                    };
                }, {
                    readonly name: "offset";
                    readonly in: "query";
                    readonly required: false;
                    readonly schema: {
                        readonly type: "integer";
                        readonly minimum: 0;
                        readonly description: "The offset at which to start listing TODO items";
                    };
                }, {
                    readonly name: "limit";
                    readonly in: "query";
                    readonly required: false;
                    readonly schema: {
                        readonly type: "integer";
                        readonly minimum: 1;
                        readonly description: "The number of TODO items to list";
                    };
                }];
            };
        };
    };
};
export declare const createOpenApiRouter: (options?: Parameters<typeof createValidatedOpenApiRouter>['1']) => Promise<import("@backstage/backend-openapi-utils").ApiRouter<{
    readonly openapi: "3.0.3";
    readonly info: {
        readonly title: "todo";
        readonly version: "1";
        readonly description: "The Backstage backend plugin that provides source code todo comment browsing.";
        readonly license: {
            readonly name: "Apache-2.0";
            readonly url: "http://www.apache.org/licenses/LICENSE-2.0.html";
        };
        readonly contact: {};
    };
    readonly servers: readonly [{
        readonly url: "/";
    }];
    readonly components: {
        readonly examples: {};
        readonly headers: {};
        readonly parameters: {};
        readonly requestBodies: {};
        readonly responses: {};
        readonly schemas: {
            readonly TodoItem: {
                readonly type: "object";
                readonly properties: {
                    readonly text: {
                        readonly type: "string";
                        readonly description: "The contents of the TODO comment";
                    };
                    readonly tag: {
                        readonly type: "string";
                        readonly description: "The tag used, e.g. TODO, FIXME";
                    };
                    readonly author: {
                        readonly type: "string";
                        readonly description: "References author, if any";
                    };
                    readonly viewUrl: {
                        readonly type: "string";
                        readonly description: "URL used to view the file";
                    };
                    readonly lineNumber: {
                        readonly type: "integer";
                        readonly description: "The line number of the file that the TODO occurs at";
                    };
                    readonly repoFilePath: {
                        readonly type: "string";
                        readonly description: "The path of the file containing the TODO within the repo";
                    };
                };
                readonly required: readonly ["text", "tag"];
                readonly additionalProperties: false;
            };
        };
        readonly securitySchemes: {
            readonly JWT: {
                readonly type: "http";
                readonly scheme: "bearer";
                readonly bearerFormat: "JWT";
            };
        };
    };
    readonly paths: {
        readonly '/v1/todos': {
            readonly get: {
                readonly operationId: "ListTodos";
                readonly responses: {
                    readonly '200': {
                        readonly description: "Ok";
                        readonly content: {
                            readonly 'application/json': {
                                readonly schema: {
                                    readonly type: "object";
                                    readonly properties: {
                                        readonly items: {
                                            readonly type: "array";
                                            readonly items: {
                                                readonly $ref: "#/components/schemas/TodoItem";
                                            };
                                        };
                                        readonly totalCount: {
                                            readonly type: "integer";
                                        };
                                        readonly offset: {
                                            readonly type: "integer";
                                        };
                                        readonly limit: {
                                            readonly type: "integer";
                                        };
                                    };
                                    readonly required: readonly ["items", "totalCount", "offset", "limit"];
                                    readonly additionalProperties: false;
                                };
                            };
                        };
                    };
                    readonly '400': {
                        readonly description: "Bad request";
                        readonly content: {
                            readonly 'application/json': {
                                readonly schema: {
                                    readonly type: "object";
                                    readonly properties: {
                                        readonly error: {
                                            readonly type: "object";
                                            readonly properties: {
                                                readonly message: {
                                                    readonly type: "string";
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                        };
                    };
                };
                readonly security: readonly [{}, {
                    readonly JWT: readonly [];
                }];
                readonly parameters: readonly [{
                    readonly name: "entity";
                    readonly in: "query";
                    readonly required: false;
                    readonly allowReserved: true;
                    readonly schema: {
                        readonly type: "string";
                        readonly minLength: 1;
                        readonly description: "A reference to the entity to list TODO items for";
                    };
                }, {
                    readonly name: "orderBy";
                    readonly in: "query";
                    readonly required: false;
                    readonly schema: {
                        readonly type: "string";
                        readonly pattern: "^(text|tag|author|viewUrl|repoFilePath)=(asc|desc)$";
                        readonly description: "The field and direction used to sort the listed TODO items";
                    };
                }, {
                    readonly name: "filter";
                    readonly in: "query";
                    readonly required: false;
                    readonly allowReserved: true;
                    readonly schema: {
                        readonly type: "array";
                        readonly description: "A list of filters used to narrow down the listed TODO items";
                        readonly items: {
                            readonly type: "string";
                            readonly pattern: "^(text|tag|author|viewUrl|repoFilePath)=.+$";
                        };
                    };
                }, {
                    readonly name: "offset";
                    readonly in: "query";
                    readonly required: false;
                    readonly schema: {
                        readonly type: "integer";
                        readonly minimum: 0;
                        readonly description: "The offset at which to start listing TODO items";
                    };
                }, {
                    readonly name: "limit";
                    readonly in: "query";
                    readonly required: false;
                    readonly schema: {
                        readonly type: "integer";
                        readonly minimum: 1;
                        readonly description: "The number of TODO items to list";
                    };
                }];
            };
        };
    };
}>>;
