type DataEntryConstraint = {
    id: string;
    collection: string;
    data: Record<string, unknown>;
};
type ContentEntryConstraint = DataEntryConstraint & {
    slug: string;
};
type EntryConstraint = DataEntryConstraint | ContentEntryConstraint;
type ReferenceConstraint<TEntry extends EntryConstraint> = {
    collection: TEntry["collection"];
} & (TEntry extends ContentEntryConstraint ? {
    slug: TEntry["slug"];
} : {
    id: TEntry["id"];
});
type PickKeysByValue<T, ValueType> = {
    [Key in keyof T as T[Key] extends ValueType ? Key : never]: T[Key];
};
declare const handleI18nSlug: (slug: string) => {
    locale: string;
    slug: string;
};
declare const collectionFilters: {
    byLocale: <TEntry extends EntryConstraint>(entry: TEntry, { locale }: {
        locale: string;
    }) => boolean;
    matchingEntries: <TEntry_1 extends EntryConstraint, TKey extends keyof PickKeysByValue<TEntry_1["data"], ReferenceConstraint<TEntry_1> | undefined>>(entry: TEntry_1, { key, currentEntry, locale, defaultLocale, }: {
        currentEntry: TEntry_1;
        key: TKey;
        locale: string;
        defaultLocale: string;
    }) => boolean;
};

export { collectionFilters, handleI18nSlug };
