import { AuthDict } from "../interactive-auth";
/**
 * The request body of a call to `POST /_matrix/client/v3/register`.
 *
 * @see https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv3register
 */
export interface RegisterRequest {
    /**
     * Additional authentication information for the user-interactive authentication API.
     * Note that this information is not used to define how the registered user should be authenticated,
     * but is instead used to authenticate the register call itself.
     */
    auth?: AuthDict;
    /**
     * The basis for the localpart of the desired Matrix ID.
     * If omitted, the homeserver MUST generate a Matrix ID local part.
     */
    username?: string;
    /**
     * The desired password for the account.
     */
    password?: string;
    /**
     * If true, the client supports refresh tokens.
     */
    refresh_token?: boolean;
    /**
     * If true, an access_token and device_id should not be returned from this call, therefore preventing an automatic login.
     * Defaults to false.
     */
    inhibit_login?: boolean;
    /**
     * A display name to assign to the newly-created device.
     * Ignored if device_id corresponds to a known device.
     */
    initial_device_display_name?: string;
    /**
     * @deprecated missing in the spec
     */
    guest_access_token?: string;
    /**
     * @deprecated missing in the spec
     */
    x_show_msisdn?: boolean;
    /**
     * @deprecated missing in the spec
     */
    bind_msisdn?: boolean;
    /**
     * @deprecated missing in the spec
     */
    bind_email?: boolean;
}
/**
 * The result of a successful call to `POST /_matrix/client/v3/register`.
 *
 * @see https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv3register
 */
export interface RegisterResponse {
    /**
     * The fully-qualified Matrix user ID (MXID) that has been registered.
     */
    user_id: string;
    /**
     * An access token for the account.
     * This access token can then be used to authorize other requests.
     * Required if the inhibit_login option is false.
     */
    access_token?: string;
    /**
     * ID of the registered device.
     * Will be the same as the corresponding parameter in the request, if one was specified.
     * Required if the inhibit_login option is false.
     */
    device_id?: string;
    /**
     * The lifetime of the access token, in milliseconds.
     * Once the access token has expired a new access token can be obtained by using the provided refresh token.
     * If no refresh token is provided, the client will need to re-log in to obtain a new access token.
     * If not given, the client can assume that the access token will not expire.
     *
     * Omitted if the inhibit_login option is true.
     */
    expires_in_ms?: number;
    /**
     * A refresh token for the account.
     * This token can be used to obtain a new access token when it expires by calling the /refresh endpoint.
     *
     * Omitted if the inhibit_login option is true.
     */
    refresh_token?: string;
    /**
     * The server_name of the homeserver on which the account has been registered.
     *
     * @deprecated Clients should extract the server_name from user_id (by splitting at the first colon) if they require it.
     */
    home_server?: string;
}
//# sourceMappingURL=registration.d.ts.map