import Long from "long";
import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "zitadel.user.v3alpha";
export interface Contact {
    /** Email contact information of the user. */
    email: Email | undefined;
    /** Phone contact information of the user. */
    phone: Phone | undefined;
}
export interface Email {
    /** Email address of the user. */
    address: string;
    /** IsVerified states if the email address has been verified to belong to the user. */
    isVerified: boolean;
}
export interface Phone {
    /** Phone number of the user. */
    number: string;
    /** IsVerified states if the phone number has been verified to belong to the user. */
    isVerified: boolean;
}
export interface SetContact {
    email?: SetEmail | undefined;
    phone?: SetPhone | undefined;
}
export interface SetEmail {
    /** Set the email address. */
    address: string;
    /** Let ZITADEL send the link to the user via email. */
    sendCode?: SendEmailVerificationCode | undefined;
    /** Get the code back to provide it to the user in your preferred mechanism. */
    returnCode?: ReturnEmailVerificationCode | undefined;
    /** Set the email as already verified. */
    isVerified?: boolean | undefined;
}
export interface SendEmailVerificationCode {
    /**
     * Optionally set a url_template, which will be used in the verification mail sent by ZITADEL
     * to guide the user to your verification page.
     * If no template is set, the default ZITADEL url will be used.
     */
    urlTemplate?: string | undefined;
}
export interface ReturnEmailVerificationCode {
}
export interface SetPhone {
    /** Set the user's phone number. */
    number: string;
    /** Let ZITADEL send the link to the user via SMS. */
    sendCode?: SendPhoneVerificationCode | undefined;
    /** Get the code back to provide it to the user in your preferred mechanism. */
    returnCode?: ReturnPhoneVerificationCode | undefined;
    /** Set the phone as already verified. */
    isVerified?: boolean | undefined;
}
export interface SendPhoneVerificationCode {
}
export interface ReturnPhoneVerificationCode {
}
export declare const Contact: {
    encode(message: Contact, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Contact;
    fromJSON(object: any): Contact;
    toJSON(message: Contact): unknown;
    create(base?: DeepPartial<Contact>): Contact;
    fromPartial(object: DeepPartial<Contact>): Contact;
};
export declare const Email: {
    encode(message: Email, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Email;
    fromJSON(object: any): Email;
    toJSON(message: Email): unknown;
    create(base?: DeepPartial<Email>): Email;
    fromPartial(object: DeepPartial<Email>): Email;
};
export declare const Phone: {
    encode(message: Phone, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Phone;
    fromJSON(object: any): Phone;
    toJSON(message: Phone): unknown;
    create(base?: DeepPartial<Phone>): Phone;
    fromPartial(object: DeepPartial<Phone>): Phone;
};
export declare const SetContact: {
    encode(message: SetContact, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetContact;
    fromJSON(object: any): SetContact;
    toJSON(message: SetContact): unknown;
    create(base?: DeepPartial<SetContact>): SetContact;
    fromPartial(object: DeepPartial<SetContact>): SetContact;
};
export declare const SetEmail: {
    encode(message: SetEmail, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetEmail;
    fromJSON(object: any): SetEmail;
    toJSON(message: SetEmail): unknown;
    create(base?: DeepPartial<SetEmail>): SetEmail;
    fromPartial(object: DeepPartial<SetEmail>): SetEmail;
};
export declare const SendEmailVerificationCode: {
    encode(message: SendEmailVerificationCode, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SendEmailVerificationCode;
    fromJSON(object: any): SendEmailVerificationCode;
    toJSON(message: SendEmailVerificationCode): unknown;
    create(base?: DeepPartial<SendEmailVerificationCode>): SendEmailVerificationCode;
    fromPartial(object: DeepPartial<SendEmailVerificationCode>): SendEmailVerificationCode;
};
export declare const ReturnEmailVerificationCode: {
    encode(_: ReturnEmailVerificationCode, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ReturnEmailVerificationCode;
    fromJSON(_: any): ReturnEmailVerificationCode;
    toJSON(_: ReturnEmailVerificationCode): unknown;
    create(base?: DeepPartial<ReturnEmailVerificationCode>): ReturnEmailVerificationCode;
    fromPartial(_: DeepPartial<ReturnEmailVerificationCode>): ReturnEmailVerificationCode;
};
export declare const SetPhone: {
    encode(message: SetPhone, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetPhone;
    fromJSON(object: any): SetPhone;
    toJSON(message: SetPhone): unknown;
    create(base?: DeepPartial<SetPhone>): SetPhone;
    fromPartial(object: DeepPartial<SetPhone>): SetPhone;
};
export declare const SendPhoneVerificationCode: {
    encode(_: SendPhoneVerificationCode, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SendPhoneVerificationCode;
    fromJSON(_: any): SendPhoneVerificationCode;
    toJSON(_: SendPhoneVerificationCode): unknown;
    create(base?: DeepPartial<SendPhoneVerificationCode>): SendPhoneVerificationCode;
    fromPartial(_: DeepPartial<SendPhoneVerificationCode>): SendPhoneVerificationCode;
};
export declare const ReturnPhoneVerificationCode: {
    encode(_: ReturnPhoneVerificationCode, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ReturnPhoneVerificationCode;
    fromJSON(_: any): ReturnPhoneVerificationCode;
    toJSON(_: ReturnPhoneVerificationCode): unknown;
    create(base?: DeepPartial<ReturnPhoneVerificationCode>): ReturnPhoneVerificationCode;
    fromPartial(_: DeepPartial<ReturnPhoneVerificationCode>): ReturnPhoneVerificationCode;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Long ? string | number | Long : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export {};
