import { z } from 'zod';
import { JWE, DidDocument, JWKWithPrivateKey, VP, LCNProfile } from '@learncard/types';
import { Plugin } from '@learncard/core';
import { ProofOptions } from '@learncard/didkit-plugin';
export type BoostSkills = {
    category: string;
    skill: string;
    subskills: string[];
};
export declare const ScoutsSSOResponseSchema: z.ZodObject<{
    access_token: z.ZodString;
    expires_in: z.ZodNumber;
    'not-before-policy': z.ZodNumber;
    refresh_expires_in: z.ZodNumber;
    refresh_token: z.ZodString;
    scope: z.ZodString;
    session_state: z.ZodString;
    token_type: z.ZodString;
    error: z.ZodOptional<z.ZodString>;
    error_description: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type ScoutSSOResponseType = z.infer<typeof ScoutsSSOResponseSchema>;
declare const UserRecordSchema: z.ZodObject<{
    uid: z.ZodString;
    email: z.ZodNullable<z.ZodString>;
    emailVerified: z.ZodBoolean;
    displayName: z.ZodNullable<z.ZodString>;
    phoneNumber: z.ZodNullable<z.ZodString>;
    photoURL: z.ZodNullable<z.ZodString>;
    disabled: z.ZodBoolean;
    providerData: z.ZodArray<z.ZodObject<{
        uid: z.ZodString;
        displayName: z.ZodNullable<z.ZodString>;
        email: z.ZodNullable<z.ZodString>;
        phoneNumber: z.ZodNullable<z.ZodString>;
        photoURL: z.ZodNullable<z.ZodString>;
        providerId: z.ZodString;
    }, z.core.$strip>>;
    metadata: z.ZodObject<{
        creationTime: z.ZodString;
        lastSignInTime: z.ZodNullable<z.ZodString>;
    }, z.core.$strip>;
    customClaims: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, z.core.$strip>;
export type UserRecordType = z.infer<typeof UserRecordSchema>;
declare const FirebaseCustomAuthResponseSchema: z.ZodObject<{
    firebaseToken: z.ZodString;
}, z.core.$strip>;
export type FirebaseCustomAuthResponse = z.infer<typeof FirebaseCustomAuthResponseSchema>;
export declare enum ThemeEnum {
    Colorful = "colorful",
    Formal = "formal"
}
export declare const PreferencesValidator: z.ZodObject<{
    theme: z.ZodEnum<{
        colorful: ThemeEnum.Colorful;
        formal: ThemeEnum.Formal;
    }>;
}, z.core.$strip>;
export type PreferencesType = z.infer<typeof PreferencesValidator>;
/** @group LCA API Plugin */
export declare const SigningAuthorityValidator: z.ZodObject<{
    _id: z.ZodOptional<z.ZodString>;
    ownerDid: z.ZodString;
    name: z.ZodString;
    did: z.ZodOptional<z.ZodString>;
    endpoint: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/** @group LCA API Plugin */
export type SigningAuthorityType = z.infer<typeof SigningAuthorityValidator>;
/** @group LCA API Plugin */
export type SigningAuthorityAuthorization = {
    type: string;
    boostUri: string;
};
/** These Types are Kept in Sync with LCA-API Service.
 * TODO: Move into shared package
 */
/** @group LCA API Plugin */
export declare const NotificationActionStatusEnumValidator: z.ZodEnum<{
    PENDING: "PENDING";
    COMPLETED: "COMPLETED";
    REJECTED: "REJECTED";
}>;
export type NotificationActionStatusEnumType = z.infer<typeof NotificationActionStatusEnumValidator>;
/** @group LCA API Plugin */
export declare const NotificationMetaValidator: z.ZodObject<{
    archived: z.ZodOptional<z.ZodBoolean>;
    read: z.ZodOptional<z.ZodBoolean>;
    actionStatus: z.ZodOptional<z.ZodEnum<{
        PENDING: "PENDING";
        COMPLETED: "COMPLETED";
        REJECTED: "REJECTED";
    }>>;
}, z.core.$strip>;
/** @group LCA API Plugin */
export type NotificationMetaType = z.infer<typeof NotificationMetaValidator>;
/** @group LCA API Plugin */
export declare const NotificationQueryFiltersValidator: z.ZodObject<{
    archived: z.ZodOptional<z.ZodBoolean>;
    read: z.ZodOptional<z.ZodBoolean>;
    actionStatus: z.ZodOptional<z.ZodEnum<{
        PENDING: "PENDING";
        COMPLETED: "COMPLETED";
        REJECTED: "REJECTED";
    }>>;
    type: z.ZodOptional<z.ZodEnum<{
        CONNECTION_REQUEST: "CONNECTION_REQUEST";
        CONNECTION_REQUEST_EXPIRED_INVITE: "CONNECTION_REQUEST_EXPIRED_INVITE";
        CONNECTION_ACCEPTED: "CONNECTION_ACCEPTED";
        CREDENTIAL_RECEIVED: "CREDENTIAL_RECEIVED";
        CREDENTIAL_ACCEPTED: "CREDENTIAL_ACCEPTED";
        BOOST_RECEIVED: "BOOST_RECEIVED";
        BOOST_ACCEPTED: "BOOST_ACCEPTED";
        PRESENTATION_REQUEST: "PRESENTATION_REQUEST";
        PRESENTATION_RECEIVED: "PRESENTATION_RECEIVED";
        CONSENT_FLOW_TRANSACTION: "CONSENT_FLOW_TRANSACTION";
        ISSUANCE_CLAIMED: "ISSUANCE_CLAIMED";
        ISSUANCE_DELIVERED: "ISSUANCE_DELIVERED";
        ISSUANCE_ERROR: "ISSUANCE_ERROR";
        PROFILE_PARENT_APPROVED: "PROFILE_PARENT_APPROVED";
        APP_LISTING_SUBMITTED: "APP_LISTING_SUBMITTED";
        APP_LISTING_APPROVED: "APP_LISTING_APPROVED";
        APP_LISTING_REJECTED: "APP_LISTING_REJECTED";
    }>>;
}, z.core.$strip>;
/** @group LCA API Plugin */
export type NotificationQueryFiltersType = z.infer<typeof NotificationQueryFiltersValidator>;
/** @group LCA API Plugin */
export declare const NotificationsSortEnumValidator: z.ZodEnum<{
    CHRONOLOGICAL: "CHRONOLOGICAL";
    REVERSE_CHRONOLOGICAL: "REVERSE_CHRONOLOGICAL";
}>;
/** @group LCA API Plugin */
export type NotificationsSortEnum = z.infer<typeof NotificationsSortEnumValidator>;
/** @group LCA API Plugin */
export declare const PaginatedNotificationsOptionsValidator: z.ZodObject<{
    limit: z.ZodNumber;
    cursor: z.ZodOptional<z.ZodString>;
    sort: z.ZodDefault<z.ZodEnum<{
        CHRONOLOGICAL: "CHRONOLOGICAL";
        REVERSE_CHRONOLOGICAL: "REVERSE_CHRONOLOGICAL";
    }>>;
}, z.core.$strip>;
/** @group LCA API Plugin */
export type PaginatedNotificationsOptionsType = z.infer<typeof PaginatedNotificationsOptionsValidator>;
/** @group LCA API Plugin */
export declare const NotificationValidator: z.ZodObject<{
    type: z.ZodEnum<{
        CONNECTION_REQUEST: "CONNECTION_REQUEST";
        CONNECTION_REQUEST_EXPIRED_INVITE: "CONNECTION_REQUEST_EXPIRED_INVITE";
        CONNECTION_ACCEPTED: "CONNECTION_ACCEPTED";
        CREDENTIAL_RECEIVED: "CREDENTIAL_RECEIVED";
        CREDENTIAL_ACCEPTED: "CREDENTIAL_ACCEPTED";
        BOOST_RECEIVED: "BOOST_RECEIVED";
        BOOST_ACCEPTED: "BOOST_ACCEPTED";
        PRESENTATION_REQUEST: "PRESENTATION_REQUEST";
        PRESENTATION_RECEIVED: "PRESENTATION_RECEIVED";
        CONSENT_FLOW_TRANSACTION: "CONSENT_FLOW_TRANSACTION";
        ISSUANCE_CLAIMED: "ISSUANCE_CLAIMED";
        ISSUANCE_DELIVERED: "ISSUANCE_DELIVERED";
        ISSUANCE_ERROR: "ISSUANCE_ERROR";
        PROFILE_PARENT_APPROVED: "PROFILE_PARENT_APPROVED";
        APP_LISTING_SUBMITTED: "APP_LISTING_SUBMITTED";
        APP_LISTING_APPROVED: "APP_LISTING_APPROVED";
        APP_LISTING_REJECTED: "APP_LISTING_REJECTED";
    }>;
    to: z.ZodIntersection<z.ZodObject<{
        profileId: z.ZodOptional<z.ZodString>;
        displayName: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        shortBio: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        bio: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        did: z.ZodOptional<z.ZodString>;
        isPrivate: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
        email: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        image: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        heroImage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        websiteLink: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        isServiceProfile: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
        type: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        notificationsWebhook: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        display: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            backgroundColor: z.ZodOptional<z.ZodString>;
            backgroundImage: z.ZodOptional<z.ZodString>;
            fadeBackgroundImage: z.ZodOptional<z.ZodBoolean>;
            repeatBackgroundImage: z.ZodOptional<z.ZodBoolean>;
            fontColor: z.ZodOptional<z.ZodString>;
            accentColor: z.ZodOptional<z.ZodString>;
            accentFontColor: z.ZodOptional<z.ZodString>;
            idBackgroundImage: z.ZodOptional<z.ZodString>;
            fadeIdBackgroundImage: z.ZodOptional<z.ZodBoolean>;
            idBackgroundColor: z.ZodOptional<z.ZodString>;
            repeatIdBackgroundImage: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>>;
        highlightedCredentials: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        role: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodString>>>;
        dob: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodString>>>;
        country: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        approved: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>, z.ZodObject<{
        did: z.ZodString;
    }, z.core.$strip>>;
    from: z.ZodIntersection<z.ZodObject<{
        profileId: z.ZodOptional<z.ZodString>;
        displayName: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        shortBio: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        bio: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        did: z.ZodOptional<z.ZodString>;
        isPrivate: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
        email: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        image: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        heroImage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        websiteLink: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        isServiceProfile: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
        type: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        notificationsWebhook: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        display: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            backgroundColor: z.ZodOptional<z.ZodString>;
            backgroundImage: z.ZodOptional<z.ZodString>;
            fadeBackgroundImage: z.ZodOptional<z.ZodBoolean>;
            repeatBackgroundImage: z.ZodOptional<z.ZodBoolean>;
            fontColor: z.ZodOptional<z.ZodString>;
            accentColor: z.ZodOptional<z.ZodString>;
            accentFontColor: z.ZodOptional<z.ZodString>;
            idBackgroundImage: z.ZodOptional<z.ZodString>;
            fadeIdBackgroundImage: z.ZodOptional<z.ZodBoolean>;
            idBackgroundColor: z.ZodOptional<z.ZodString>;
            repeatIdBackgroundImage: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>>;
        highlightedCredentials: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        role: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodString>>>;
        dob: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodString>>>;
        country: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        approved: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>, z.ZodObject<{
        did: z.ZodString;
    }, z.core.$strip>>;
    message: z.ZodOptional<z.ZodObject<{
        title: z.ZodOptional<z.ZodString>;
        body: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    data: z.ZodOptional<z.ZodObject<{
        vcUris: z.ZodOptional<z.ZodArray<z.ZodString>>;
        vpUris: z.ZodOptional<z.ZodArray<z.ZodString>>;
        transaction: z.ZodOptional<z.ZodObject<{
            expiresAt: z.ZodOptional<z.ZodString>;
            oneTime: z.ZodOptional<z.ZodBoolean>;
            terms: z.ZodOptional<z.ZodObject<{
                read: z.ZodPrefault<z.ZodObject<{
                    anonymize: z.ZodOptional<z.ZodBoolean>;
                    credentials: z.ZodPrefault<z.ZodObject<{
                        shareAll: z.ZodOptional<z.ZodBoolean>;
                        sharing: z.ZodOptional<z.ZodBoolean>;
                        categories: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
                            sharing: z.ZodOptional<z.ZodBoolean>;
                            shared: z.ZodOptional<z.ZodArray<z.ZodString>>;
                            shareAll: z.ZodOptional<z.ZodBoolean>;
                            shareUntil: z.ZodOptional<z.ZodString>;
                        }, z.core.$strip>>>;
                    }, z.core.$strip>>;
                    personal: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
                }, z.core.$strip>>;
                write: z.ZodPrefault<z.ZodObject<{
                    credentials: z.ZodPrefault<z.ZodObject<{
                        categories: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
                    }, z.core.$strip>>;
                    personal: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
                }, z.core.$strip>>;
                deniedWriters: z.ZodOptional<z.ZodArray<z.ZodString>>;
            }, z.core.$strip>>;
            id: z.ZodString;
            action: z.ZodEnum<{
                write: "write";
                consent: "consent";
                update: "update";
                sync: "sync";
                withdraw: "withdraw";
            }>;
            date: z.ZodString;
            uris: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>;
        inbox: z.ZodOptional<z.ZodObject<{
            issuanceId: z.ZodString;
            status: z.ZodEnum<{
                PENDING: "PENDING";
                ISSUED: "ISSUED";
                EXPIRED: "EXPIRED";
                DELIVERED: "DELIVERED";
                CLAIMED: "CLAIMED";
            }>;
            recipient: z.ZodObject<{
                contactMethod: z.ZodOptional<z.ZodObject<{
                    type: z.ZodString;
                    value: z.ZodString;
                }, z.core.$strip>>;
                learnCardId: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>;
            timestamp: z.ZodOptional<z.ZodISODateTime>;
        }, z.core.$strip>>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, z.core.$loose>>;
    sent: z.ZodOptional<z.ZodISODateTime>;
    webhookUrl: z.ZodOptional<z.ZodString>;
    _id: z.ZodOptional<z.ZodString>;
    read: z.ZodBoolean;
    archived: z.ZodBoolean;
    actionStatus: z.ZodOptional<z.ZodEnum<{
        PENDING: "PENDING";
        COMPLETED: "COMPLETED";
        REJECTED: "REJECTED";
    }>>;
}, z.core.$strip>;
/** @group LCA API Plugin */
export type NotificationType = z.infer<typeof NotificationValidator>;
export declare const PaginatedNotificationsValidator: z.ZodObject<{
    cursor: z.ZodOptional<z.ZodString>;
    hasMore: z.ZodBoolean;
    notifications: z.ZodArray<z.ZodObject<{
        type: z.ZodEnum<{
            CONNECTION_REQUEST: "CONNECTION_REQUEST";
            CONNECTION_REQUEST_EXPIRED_INVITE: "CONNECTION_REQUEST_EXPIRED_INVITE";
            CONNECTION_ACCEPTED: "CONNECTION_ACCEPTED";
            CREDENTIAL_RECEIVED: "CREDENTIAL_RECEIVED";
            CREDENTIAL_ACCEPTED: "CREDENTIAL_ACCEPTED";
            BOOST_RECEIVED: "BOOST_RECEIVED";
            BOOST_ACCEPTED: "BOOST_ACCEPTED";
            PRESENTATION_REQUEST: "PRESENTATION_REQUEST";
            PRESENTATION_RECEIVED: "PRESENTATION_RECEIVED";
            CONSENT_FLOW_TRANSACTION: "CONSENT_FLOW_TRANSACTION";
            ISSUANCE_CLAIMED: "ISSUANCE_CLAIMED";
            ISSUANCE_DELIVERED: "ISSUANCE_DELIVERED";
            ISSUANCE_ERROR: "ISSUANCE_ERROR";
            PROFILE_PARENT_APPROVED: "PROFILE_PARENT_APPROVED";
            APP_LISTING_SUBMITTED: "APP_LISTING_SUBMITTED";
            APP_LISTING_APPROVED: "APP_LISTING_APPROVED";
            APP_LISTING_REJECTED: "APP_LISTING_REJECTED";
        }>;
        to: z.ZodIntersection<z.ZodObject<{
            profileId: z.ZodOptional<z.ZodString>;
            displayName: z.ZodOptional<z.ZodDefault<z.ZodString>>;
            shortBio: z.ZodOptional<z.ZodDefault<z.ZodString>>;
            bio: z.ZodOptional<z.ZodDefault<z.ZodString>>;
            did: z.ZodOptional<z.ZodString>;
            isPrivate: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
            email: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            image: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            heroImage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            websiteLink: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            isServiceProfile: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
            type: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            notificationsWebhook: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            display: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                backgroundColor: z.ZodOptional<z.ZodString>;
                backgroundImage: z.ZodOptional<z.ZodString>;
                fadeBackgroundImage: z.ZodOptional<z.ZodBoolean>;
                repeatBackgroundImage: z.ZodOptional<z.ZodBoolean>;
                fontColor: z.ZodOptional<z.ZodString>;
                accentColor: z.ZodOptional<z.ZodString>;
                accentFontColor: z.ZodOptional<z.ZodString>;
                idBackgroundImage: z.ZodOptional<z.ZodString>;
                fadeIdBackgroundImage: z.ZodOptional<z.ZodBoolean>;
                idBackgroundColor: z.ZodOptional<z.ZodString>;
                repeatIdBackgroundImage: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strip>>>;
            highlightedCredentials: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            role: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodString>>>;
            dob: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodString>>>;
            country: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            approved: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
        }, z.core.$strip>, z.ZodObject<{
            did: z.ZodString;
        }, z.core.$strip>>;
        from: z.ZodIntersection<z.ZodObject<{
            profileId: z.ZodOptional<z.ZodString>;
            displayName: z.ZodOptional<z.ZodDefault<z.ZodString>>;
            shortBio: z.ZodOptional<z.ZodDefault<z.ZodString>>;
            bio: z.ZodOptional<z.ZodDefault<z.ZodString>>;
            did: z.ZodOptional<z.ZodString>;
            isPrivate: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
            email: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            image: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            heroImage: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            websiteLink: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            isServiceProfile: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
            type: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            notificationsWebhook: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            display: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                backgroundColor: z.ZodOptional<z.ZodString>;
                backgroundImage: z.ZodOptional<z.ZodString>;
                fadeBackgroundImage: z.ZodOptional<z.ZodBoolean>;
                repeatBackgroundImage: z.ZodOptional<z.ZodBoolean>;
                fontColor: z.ZodOptional<z.ZodString>;
                accentColor: z.ZodOptional<z.ZodString>;
                accentFontColor: z.ZodOptional<z.ZodString>;
                idBackgroundImage: z.ZodOptional<z.ZodString>;
                fadeIdBackgroundImage: z.ZodOptional<z.ZodBoolean>;
                idBackgroundColor: z.ZodOptional<z.ZodString>;
                repeatIdBackgroundImage: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strip>>>;
            highlightedCredentials: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            role: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodString>>>;
            dob: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodString>>>;
            country: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            approved: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
        }, z.core.$strip>, z.ZodObject<{
            did: z.ZodString;
        }, z.core.$strip>>;
        message: z.ZodOptional<z.ZodObject<{
            title: z.ZodOptional<z.ZodString>;
            body: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        data: z.ZodOptional<z.ZodObject<{
            vcUris: z.ZodOptional<z.ZodArray<z.ZodString>>;
            vpUris: z.ZodOptional<z.ZodArray<z.ZodString>>;
            transaction: z.ZodOptional<z.ZodObject<{
                expiresAt: z.ZodOptional<z.ZodString>;
                oneTime: z.ZodOptional<z.ZodBoolean>;
                terms: z.ZodOptional<z.ZodObject<{
                    read: z.ZodPrefault<z.ZodObject<{
                        anonymize: z.ZodOptional<z.ZodBoolean>;
                        credentials: z.ZodPrefault<z.ZodObject<{
                            shareAll: z.ZodOptional<z.ZodBoolean>;
                            sharing: z.ZodOptional<z.ZodBoolean>;
                            categories: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
                                sharing: z.ZodOptional<z.ZodBoolean>;
                                shared: z.ZodOptional<z.ZodArray<z.ZodString>>;
                                shareAll: z.ZodOptional<z.ZodBoolean>;
                                shareUntil: z.ZodOptional<z.ZodString>;
                            }, z.core.$strip>>>;
                        }, z.core.$strip>>;
                        personal: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
                    }, z.core.$strip>>;
                    write: z.ZodPrefault<z.ZodObject<{
                        credentials: z.ZodPrefault<z.ZodObject<{
                            categories: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
                        }, z.core.$strip>>;
                        personal: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
                    }, z.core.$strip>>;
                    deniedWriters: z.ZodOptional<z.ZodArray<z.ZodString>>;
                }, z.core.$strip>>;
                id: z.ZodString;
                action: z.ZodEnum<{
                    write: "write";
                    consent: "consent";
                    update: "update";
                    sync: "sync";
                    withdraw: "withdraw";
                }>;
                date: z.ZodString;
                uris: z.ZodOptional<z.ZodArray<z.ZodString>>;
            }, z.core.$strip>>;
            inbox: z.ZodOptional<z.ZodObject<{
                issuanceId: z.ZodString;
                status: z.ZodEnum<{
                    PENDING: "PENDING";
                    ISSUED: "ISSUED";
                    EXPIRED: "EXPIRED";
                    DELIVERED: "DELIVERED";
                    CLAIMED: "CLAIMED";
                }>;
                recipient: z.ZodObject<{
                    contactMethod: z.ZodOptional<z.ZodObject<{
                        type: z.ZodString;
                        value: z.ZodString;
                    }, z.core.$strip>>;
                    learnCardId: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>;
                timestamp: z.ZodOptional<z.ZodISODateTime>;
            }, z.core.$strip>>;
            metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        }, z.core.$loose>>;
        sent: z.ZodOptional<z.ZodISODateTime>;
        webhookUrl: z.ZodOptional<z.ZodString>;
        _id: z.ZodOptional<z.ZodString>;
        read: z.ZodBoolean;
        archived: z.ZodBoolean;
        actionStatus: z.ZodOptional<z.ZodEnum<{
            PENDING: "PENDING";
            COMPLETED: "COMPLETED";
            REJECTED: "REJECTED";
        }>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type PaginatedNotificationsType = z.infer<typeof PaginatedNotificationsValidator>;
/** @group LCA API Plugin */
export declare const NotificationQueryInputValidator: z.ZodObject<{
    type: z.ZodOptional<z.ZodEnum<{
        CONNECTION_REQUEST: "CONNECTION_REQUEST";
        CONNECTION_REQUEST_EXPIRED_INVITE: "CONNECTION_REQUEST_EXPIRED_INVITE";
        CONNECTION_ACCEPTED: "CONNECTION_ACCEPTED";
        CREDENTIAL_RECEIVED: "CREDENTIAL_RECEIVED";
        CREDENTIAL_ACCEPTED: "CREDENTIAL_ACCEPTED";
        BOOST_RECEIVED: "BOOST_RECEIVED";
        BOOST_ACCEPTED: "BOOST_ACCEPTED";
        PRESENTATION_REQUEST: "PRESENTATION_REQUEST";
        PRESENTATION_RECEIVED: "PRESENTATION_RECEIVED";
        CONSENT_FLOW_TRANSACTION: "CONSENT_FLOW_TRANSACTION";
        ISSUANCE_CLAIMED: "ISSUANCE_CLAIMED";
        ISSUANCE_DELIVERED: "ISSUANCE_DELIVERED";
        ISSUANCE_ERROR: "ISSUANCE_ERROR";
        PROFILE_PARENT_APPROVED: "PROFILE_PARENT_APPROVED";
        APP_LISTING_SUBMITTED: "APP_LISTING_SUBMITTED";
        APP_LISTING_APPROVED: "APP_LISTING_APPROVED";
        APP_LISTING_REJECTED: "APP_LISTING_REJECTED";
    }>>;
    'from.did': z.ZodOptional<z.ZodString>;
    'from.profileId': z.ZodOptional<z.ZodString>;
    'data.vcUris': z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    'data.vpUris': z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    read: z.ZodOptional<z.ZodBoolean>;
    archived: z.ZodOptional<z.ZodBoolean>;
    actionStatus: z.ZodOptional<z.ZodEnum<{
        PENDING: "PENDING";
        COMPLETED: "COMPLETED";
        REJECTED: "REJECTED";
    }>>;
}, z.core.$strict>;
/** @group LCA API Plugin */
export type NotificationQueryInputType = z.infer<typeof NotificationQueryInputValidator>;
/** END Synced Types**/
/** @group LCA API Plugin */
export type LCAPluginDependentMethods = {
    getDidAuthVp: (options?: ProofOptions) => Promise<VP | string>;
    getProfile: () => Promise<LCNProfile | undefined>;
    generateEd25519KeyFromBytes: (bytes: Uint8Array) => JWKWithPrivateKey;
    keyToDid: (type: 'key', keypair: JWKWithPrivateKey) => string;
    resolveDid: (did: string) => Promise<DidDocument>;
    addDidMetadata: (metadata: Partial<DidDocument>) => Promise<boolean>;
    decryptDagJwe: <T>(jwe: JWE, jwks?: JWKWithPrivateKey[]) => Promise<T>;
    crypto: () => Crypto;
};
export declare enum DASHBOARD_TYPE {
    NSO = 0,
    GLOBAL = 1,
    TROOP = 2
}
export type AnalyticsPayload = {
    resource: {
        dashboardType: DASHBOARD_TYPE;
    };
    params: {
        nso_id?: string[];
        troop_id?: string[];
    };
    exp: number;
};
/** @group LCA API Plugin */
export type LCAPluginMethods = {
    registerDeviceForPushNotifications: (token: string) => Promise<boolean>;
    unregisterDeviceForPushNotifications: (token: string) => Promise<boolean>;
    getNotifications: (options: PaginatedNotificationsOptionsType, filter?: NotificationQueryFiltersType) => Promise<PaginatedNotificationsType | false>;
    queryNotifications: (query: NotificationQueryInputType, options?: Partial<PaginatedNotificationsOptionsType>) => Promise<PaginatedNotificationsType | false>;
    updateNotificationMeta: (_id: string, meta: NotificationMetaType) => Promise<boolean>;
    markAllNotificationsRead: () => Promise<boolean>;
    createSigningAuthority: (name: string, ownerDid?: string) => Promise<SigningAuthorityType | false>;
    getSigningAuthorities: () => Promise<SigningAuthorityType[] | false>;
    authorizeSigningAuthority: (name: string, authorization: SigningAuthorityAuthorization) => Promise<boolean>;
    resetLCAClient: () => Promise<void>;
    generateBoostInfo: (description: string) => Promise<{
        title: string;
        description: string;
        category: string;
        type: string;
        skills: BoostSkills[];
        narrative: string;
    }>;
    generateImage: (prompt: string) => Promise<string>;
    generateBoostSkills: (description: string) => Promise<BoostSkills[]>;
    generateSkillIcons: (names: string[]) => Promise<Record<string, string>>;
    createPin: (pin: string) => Promise<boolean>;
    hasPin: (did?: string) => Promise<boolean>;
    verifyPin: (pin: string, did?: string) => Promise<boolean>;
    updatePin: (currentPin: string, newPin: string) => Promise<boolean>;
    generatePinUpdateToken: () => Promise<{
        token: string;
        tokenExpire: Date;
    } | null>;
    validatePinUpdateToken: (token: string) => Promise<boolean>;
    updatePinWithToken: (token: string, newPin: string) => Promise<boolean>;
    generateAnalyticsAccessToken: (payload: AnalyticsPayload) => Promise<string | null>;
    decryptDagJwe: <T>(jwe: JWE, jwks?: JWKWithPrivateKey[]) => Promise<T>;
    hash: (message: string, algorithm?: string) => Promise<string | undefined>;
    getFirebaseUserByEmail: (email: string) => Promise<UserRecordType | null>;
    authenticateWithKeycloak: (token: string) => Promise<FirebaseCustomAuthResponse>;
    authenticateWithScoutsSSO: (username: string, password: string) => Promise<ScoutSSOResponseType | null>;
    sendLoginVerificationCode: (email: string) => Promise<{
        success: boolean;
        message?: string;
    }>;
    verifyLoginCode: (email: string, code: string) => Promise<{
        success: boolean;
        message?: string;
        token?: string;
    }>;
    verifyNetworkHandoffToken: (token: string) => Promise<{
        success: boolean;
        message?: string;
        token?: string;
    }>;
    getProofOfLoginVp: (token: string) => Promise<{
        success: boolean;
        error?: string;
        vp?: string;
    }>;
    updatePreferences: (preferences: PreferencesType) => Promise<boolean>;
    createPreferences: (preferences: PreferencesType) => Promise<boolean>;
    getPreferencesForDid: () => Promise<PreferencesType>;
    sendEndorsementShareLink: (email: string, shareLink: string, issuer: {
        name: string;
    }, credential: {
        name: string;
    }, message: string) => Promise<boolean>;
};
/** @group LearnCardNetwork Plugin */
export type LCAPlugin = Plugin<'LearnCard App', never, LCAPluginMethods, 'id', LCAPluginDependentMethods>;
export {};
