import { type OberonPlugin, type PluginVersion, type OberonHandler, type OberonAdapter } from "../lib/dtd";
export declare function initPlugins(plugins?: OberonPlugin[]): {
    adapter: {
        prebuild: () => Promise<void>;
        addPage: (page: import("..").OberonPage) => Promise<void>;
        addImage: (data: import("zod").infer<typeof import("..").ImageSchema>) => Promise<void>;
        deletePage: (key: import("..").OberonPageMeta["key"]) => Promise<void>;
        deleteImage: (key: import("..").OberonImage["key"]) => Promise<void>;
        deleteKV: (namespace: string, key: string) => Promise<void>;
        getAllImages: () => Promise<import("..").OberonImage[]>;
        getAllPages: () => Promise<import("..").OberonPageMeta[]>;
        getPageData: (key: import("..").OberonPageMeta["key"]) => Promise<import("@puckeditor/core").Data | null>;
        getKV: (namespace: string, key: string) => Promise<import("..").JsonValue | null>;
        getSite: () => Promise<import("..").OberonSite | undefined>;
        putKV: (namespace: string, key: string, value: import("..").JsonValue) => Promise<void>;
        updatePageData: (data: import("..").OberonPage) => Promise<void>;
        updateSite: (data: import("zod").infer<typeof import("..").SiteSchema>) => Promise<void>;
        betterAuth?: import("..").OberonBetterAuthAdapter;
        addUser: (data: import("zod").infer<typeof import("..").AddUserSchema>) => Promise<import("..").OberonUser>;
        deleteUser: (id: import("..").OberonUser["id"]) => Promise<void>;
        changeRole: (data: import("zod").infer<typeof import("..").ChangeRoleSchema>) => Promise<void>;
        getAllUsers: () => Promise<import("..").OberonUser[]>;
        getCurrentUser: () => Promise<import("..").OberonUser | null>;
        hasPermission: (props: {
            user?: import("..").OberonUser | null;
            action: import("..").AdapterActionGroup;
            permission: import("..").AdapterPermission;
        }) => boolean;
        signIn: (data: {
            email: string;
        }) => Promise<void>;
        signOut: () => Promise<void>;
        sendVerificationRequest: (props: {
            email: string;
            token: string;
            url: string;
        }) => Promise<void>;
    };
    handlers: Record<string, (adapter: OberonAdapter) => OberonHandler>;
    versions: PluginVersion[];
};
//# sourceMappingURL=init-plugins.d.ts.map