import type { StarSchedAPIProtocols } from '../../../common/types/common';
import type { HttpClientProtocols } from '../../../http/protocols/client.protocols';
import type { Authentication } from './authentication';
type AuthenticationFailure = {
    code: 'user.not.exists';
    message: string;
} | {
    code: 'internal';
    message: string;
} | {
    code: 'validation';
    message: string;
    validation: {
        field: 'email';
        type: 'required';
        message: 'The email field is required';
    };
} | {
    code: 'validation';
    message: string;
    validation: {
        field: 'email';
        type: 'type';
        message: string;
    };
} | {
    code: 'validation';
    message: string;
    validation: {
        field: 'email';
        type: 'invalid';
        message: string;
    };
} | {
    code: 'validation';
    message: string;
    validation: {
        field: 'password';
        type: 'required';
        message: string;
    };
} | {
    code: 'validation';
    message: string;
    validation: {
        field: 'password';
        type: 'type';
        message: string;
    };
};
export declare namespace SignInWithEmailAndPassword {
    type Input = {
        email: string;
        password: string;
    };
    type Options = Pick<HttpClientProtocols.PostOptions, 'abortSignal'>;
    type Success = Authentication;
    type ErrorCodes = 'validation' | 'user.not.exists' | 'internal';
    type Failure = AuthenticationFailure;
    type Output = Success | Failure;
    type Response = StarSchedAPIProtocols.Response<Success, Failure>;
}
export {};
//# sourceMappingURL=sign-in-with-email-and-password.protocols.d.ts.map