import { type AdapterAccount, type AdapterAuthenticator, type AdapterSession, type AdapterUser, type VerificationToken as AdapterVerificationToken } from "next-auth/adapters";
import type { DataFromCollectionSlug } from "payload";
import type { AuthCollectionSlug } from "../../payload/plugin.js";
type User = Omit<DataFromCollectionSlug<AuthCollectionSlug>, "collection" | "createdAt" | "updatedAt">;
type Account = NonNullable<User["accounts"]>[0];
type Session = NonNullable<User["sessions"]>[0];
type VerificationToken = NonNullable<User["verificationTokens"]>[0];
type Authenticator = NonNullable<User["authenticators"]>[0];
/**
 * Transform payload objects and adapter objects back and forth
 *
 * @see https://authjs.dev/guides/creating-a-database-adapter#official-adapter-guidelines
 */
export declare const transform: {
    user: {
        /**
         * Modifications:
         * - ~`accounts`~
         * - ~`sessions`~
         * - ~`verificationTokens`~
         * - ~`authenticators`~
         */
        toAdapter: (user: User) => AdapterUser;
        /**
         * No modifications
         */
        fromAdapter: (adapterUser: AdapterUser) => Omit<User, "accounts" | "sessions" | "verificationTokens" | "authenticators">;
        /**
         * No modifications
         */
        fromPartialAdapter: (adapterUser: Partial<AdapterUser>) => Partial<Omit<User, "accounts" | "sessions" | "verificationTokens" | "authenticators">>;
    };
    account: {
        /**
         * Modifications:
         * - `user.id` --> `userId`
         */
        toAdapter: (user: Pick<User, "id">, account: Account) => AdapterAccount;
        /**
         * Modifications:
         * - ~`userId`~
         */
        fromAdapter: (adapterAccount: AdapterAccount) => Account;
    };
    session: {
        toAdapter: (user: Pick<User, "id">, session: Session) => AdapterSession;
        /**
         * Modifications:
         * - ~`userId`~
         */
        fromAdapter: (adapterSession: AdapterSession) => Session;
        /**
         * Modifications:
         * - ~`userId`~
         */
        fromPartialAdapter: (adapterSession: Partial<AdapterSession>) => Partial<Session>;
    };
    verificationToken: {
        /**
         * Modifications:
         * - `user.email` --> `identifier`
         */
        toAdapter: (user: Pick<User, "email">, verificationToken: VerificationToken) => AdapterVerificationToken;
        /**
         * Modifications:
         * - ~`identifier`~
         */
        fromAdapter: (adapterVerificationToken: AdapterVerificationToken) => VerificationToken;
    };
    authenticator: {
        /**
         * Modifications:
         * - `user.id` --> `userId`
         * - `authenticator.credentialID` --> `providerAccountId`
         */
        toAdapter: (user: Pick<User, "id">, authenticator: Authenticator) => AdapterAuthenticator;
        /**
         * Modifications:
         * - ~`userId`~
         * - ~`providerAccountId`~
         */
        fromAdapter: (adapterAuthenticator: AdapterAuthenticator) => Authenticator;
    };
};
export {};
