import { OutboxOrInbox } from '../common/listener-config';
export interface DatabaseSetupConfig {
    outboxOrInbox: OutboxOrInbox;
    database: string;
    schema: string;
    table: string;
    listenerRole: string;
    handlerRole?: string;
}
export interface DatabaseReplicationSetupConfig extends DatabaseSetupConfig {
    publication: string;
    replicationSlot: string;
}
export interface DatabasePollingSetupConfig extends DatabaseSetupConfig {
    nextMessagesSchema?: string;
    nextMessagesName: string;
}
export declare const DatabaseSetup: {
    dropAndCreateTable: ({ outboxOrInbox, schema, table, }: DatabaseSetupConfig) => string;
    dropAndCreateHandlerAndListenerRoles: ({ database, listenerRole, handlerRole, }: DatabaseSetupConfig) => string;
    grantPermissions: ({ handlerRole, listenerRole, schema, table, }: DatabaseSetupConfig) => string;
    setupReplicationCore: ({ listenerRole, publication, schema, table, }: DatabaseReplicationSetupConfig) => string;
    setupReplicationSlot: ({ replicationSlot, }: DatabaseReplicationSetupConfig) => string;
    createPollingFunction: ({ schema, table, nextMessagesSchema, nextMessagesName, }: DatabasePollingSetupConfig) => string;
    setupPollingIndexes: ({ schema, table, outboxOrInbox, }: DatabasePollingSetupConfig) => string;
};
//# sourceMappingURL=database-setup.d.ts.map