import { MixinTarget } from '@loopback/core';
import { Entity, EntityCrudRepository } from '@loopback/repository';
import debugFactory from 'debug';
export declare const debug: debugFactory.Debugger;
export declare function SlugRepositoryMixin<T extends Entity, Relations extends object>(): <R extends MixinTarget<EntityCrudRepository<T, string, Relations>>>(superClass: R) => {
    new (...args: any[]): {
        definePersistedModel(entityClass: typeof Entity): any;
        entityClass: typeof Entity & {
            prototype: T;
        };
        inclusionResolvers: Map<string, import("@loopback/repository").InclusionResolver<T, Entity>>;
        save: (entity: import("@loopback/repository").DataObject<T>, options?: import("@loopback/repository").AnyObject | undefined) => Promise<T>;
        update: (entity: import("@loopback/repository").DataObject<T>, options?: import("@loopback/repository").AnyObject | undefined) => Promise<void>;
        delete: (entity: import("@loopback/repository").DataObject<T>, options?: import("@loopback/repository").AnyObject | undefined) => Promise<void>;
        findById: (id: string, filter?: import("@loopback/repository").FilterExcludingWhere<T> | undefined, options?: import("@loopback/repository").AnyObject | undefined) => Promise<T & Relations>;
        updateById: (id: string, data: import("@loopback/repository").DataObject<T>, options?: import("@loopback/repository").AnyObject | undefined) => Promise<void>;
        replaceById: (id: string, data: import("@loopback/repository").DataObject<T>, options?: import("@loopback/repository").AnyObject | undefined) => Promise<void>;
        deleteById: (id: string, options?: import("@loopback/repository").AnyObject | undefined) => Promise<void>;
        exists: (id: string, options?: import("@loopback/repository").AnyObject | undefined) => Promise<boolean>;
        execute: (command: import("@loopback/repository").Command, parameters: import("@loopback/repository").AnyObject | import("@loopback/repository").PositionalParameters, options?: import("@loopback/repository").AnyObject | undefined) => Promise<import("@loopback/repository").AnyObject>;
        create: (dataObject: import("@loopback/repository").DataObject<T>, options?: import("@loopback/repository").AnyObject | undefined) => Promise<T>;
        createAll: (dataObjects: import("@loopback/repository").DataObject<T>[], options?: import("@loopback/repository").AnyObject | undefined) => Promise<T[]>;
        find: (filter?: import("@loopback/repository").Filter<T> | undefined, options?: import("@loopback/repository").AnyObject | undefined) => Promise<(T & Relations)[]>;
        updateAll: (dataObject: import("@loopback/repository").DataObject<T>, where?: import("@loopback/repository").Where<T> | undefined, options?: import("@loopback/repository").AnyObject | undefined) => Promise<import("@loopback/repository").Count>;
        deleteAll: (where?: import("@loopback/repository").Where<T> | undefined, options?: import("@loopback/repository").AnyObject | undefined) => Promise<import("@loopback/repository").Count>;
        count: (where?: import("@loopback/repository").Where<T> | undefined, options?: import("@loopback/repository").AnyObject | undefined) => Promise<import("@loopback/repository").Count>;
    };
} & R;
