import { TypeGuardFn } from "guardz";
import { AxiosResponse } from "axios";
import { AxiosResponseGuarded, SuccessStatus, RedirectStatus, ClientErrorStatus, ServerErrorStatus } from "../types/axios-types";
/**
 * Type guard for basic AxiosResponse structure
 */
export declare const isAxiosResponse: TypeGuardFn<AxiosResponse>;
/**
 * Creates a type guard for AxiosResponse with specific data type validation
 */
export declare function isAxiosResponseWithData<T>(dataGuard: TypeGuardFn<T>): TypeGuardFn<AxiosResponseGuarded<T>>;
/**
 * Type guard for successful HTTP response (2xx status codes)
 */
export declare const isSuccessResponse: TypeGuardFn<AxiosResponse & {
    status: SuccessStatus;
}>;
/**
 * Creates a type guard for successful response with specific data type
 */
export declare function isSuccessResponseWithData<T>(dataGuard: TypeGuardFn<T>): TypeGuardFn<AxiosResponseGuarded<T> & {
    status: SuccessStatus;
}>;
/**
 * Type guard for redirect response (3xx status codes)
 */
export declare const isRedirectResponse: TypeGuardFn<AxiosResponse & {
    status: RedirectStatus;
}>;
/**
 * Type guard for client error response (4xx status codes)
 */
export declare const isClientErrorResponse: TypeGuardFn<AxiosResponse & {
    status: ClientErrorStatus;
}>;
/**
 * Type guard for server error response (5xx status codes)
 */
export declare const isServerErrorResponse: TypeGuardFn<AxiosResponse & {
    status: ServerErrorStatus;
}>;
/**
 * Type guard for specific status code
 */
export declare function isResponseWithStatus<T extends number>(statusCode: T): TypeGuardFn<AxiosResponse & {
    status: T;
}>;
/**
 * Type guard for response with specific content type
 */
export declare function isResponseWithContentType(contentType: string): TypeGuardFn<AxiosResponse>;
/**
 * Type guard for JSON response
 */
export declare const isJsonResponse: TypeGuardFn<AxiosResponse>;
/**
 * Type guard for empty response (204 No Content)
 */
export declare const isEmptyResponse: TypeGuardFn<AxiosResponse & {
    status: 204;
}>;
/**
 * Type guard for created response (201 Created)
 */
export declare const isCreatedResponse: TypeGuardFn<AxiosResponse & {
    status: 201;
}>;
/**
 * Creates a type guard for created response with specific data type
 */
export declare function isCreatedResponseWithData<T>(dataGuard: TypeGuardFn<T>): TypeGuardFn<AxiosResponseGuarded<T> & {
    status: 201;
}>;
//# sourceMappingURL=axios-response-guards.d.ts.map