import { Sequelize } from 'sequelize-typescript';
import { SequelizeRepository, Subscription } from '..';
import { ISubscriptionRepository } from '../../..';
import { SystemConfig } from '@citrineos/base';
import { Logger, ILogObj } from 'tslog';
export declare class SequelizeSubscriptionRepository extends SequelizeRepository<Subscription> implements ISubscriptionRepository {
    constructor(config: SystemConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
    /**
     * Creates a new {@link Subscription} in the database.
     * Input is assumed to not have an id, and id will be removed if present.
     * Object is rebuilt to ensure access to essential {@link Model} function {@link Model.save()} (Model is extended by Subscription).
     *
     * @param value {@link Subscription} object which may have been deserialized from JSON
     * @returns Saved {@link Subscription} if successful, undefined otherwise
     */
    create(value: Subscription): Promise<Subscription>;
    readAllByStationId(stationId: string): Promise<Subscription[]>;
    deleteByKey(key: string): Promise<Subscription | undefined>;
}
