import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
import { LoggerService } from '@backstage/backend-plugin-api';
import express from 'express';
import { Config } from '@backstage/config';
import { PluginDatabaseManager } from '@backstage/backend-common';
import { SubmitFeedback, AppFeedback } from '@parsifal-m/backstage-plugin-open-feedback-common';

declare class OpenFeedbackDatabaseHandler {
    private readonly client;
    static create(database: PluginDatabaseManager): Promise<OpenFeedbackDatabaseHandler>;
    private constructor();
    addFeedback(feedback: SubmitFeedback): Promise<void>;
    getFeedback(): Promise<AppFeedback[]>;
    removeFeedback(id: number): Promise<void>;
}

interface RouterOptions {
    databaseHandler: OpenFeedbackDatabaseHandler;
    config: Config;
    logger: LoggerService;
}
declare function createRouter(options: RouterOptions): Promise<express.Router>;

/**
 * openFeedbackPlugin backend plugin
 *
 * @public
 */
declare const openFeedbackPlugin: _backstage_backend_plugin_api.BackendFeature;

export { type RouterOptions, createRouter, openFeedbackPlugin as default };
