/**
 * Common types used across the gov-deals package
 * All types are prefixed with 'GovDeals' to avoid naming conflicts
 */
import { z } from 'zod';
/**
 * Location information for government contracts
 */
export declare const GovDealsLocationSchema: z.ZodObject<{
    city: z.ZodOptional<z.ZodString>;
    state: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
    zip: z.ZodOptional<z.ZodString>;
    country: z.ZodOptional<z.ZodString>;
    addressLine1: z.ZodOptional<z.ZodString>;
    addressLine2: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    city?: string | undefined;
    state?: string | undefined;
    zip?: string | undefined;
    country?: string | undefined;
    addressLine1?: string | undefined;
    addressLine2?: string | undefined;
}, {
    city?: string | undefined;
    state?: string | undefined;
    zip?: string | undefined;
    country?: string | undefined;
    addressLine1?: string | undefined;
    addressLine2?: string | undefined;
}>;
export type GovDealsLocation = z.infer<typeof GovDealsLocationSchema>;
/**
 * Federal agency information
 */
export declare const GovDealsAgencySchema: z.ZodObject<{
    name: z.ZodString;
    code: z.ZodOptional<z.ZodString>;
    type: z.ZodOptional<z.ZodString>;
    parentAgency: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    name: string;
    code?: string | undefined;
    type?: string | undefined;
    parentAgency?: string | undefined;
}, {
    name: string;
    code?: string | undefined;
    type?: string | undefined;
    parentAgency?: string | undefined;
}>;
export type GovDealsAgency = z.infer<typeof GovDealsAgencySchema>;
/**
 * Government contact information
 */
export declare const GovDealsContactSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    email: z.ZodOptional<z.ZodString>;
    phone: z.ZodOptional<z.ZodString>;
    title: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    name?: string | undefined;
    email?: string | undefined;
    phone?: string | undefined;
    title?: string | undefined;
}, {
    name?: string | undefined;
    email?: string | undefined;
    phone?: string | undefined;
    title?: string | undefined;
}>;
export type GovDealsContact = z.infer<typeof GovDealsContactSchema>;
/**
 * Date range for contract searches
 */
export declare const GovDealsDateRangeSchema: z.ZodObject<{
    start: z.ZodUnion<[z.ZodDate, z.ZodString]>;
    end: z.ZodUnion<[z.ZodDate, z.ZodString]>;
}, "strip", z.ZodTypeAny, {
    start: string | Date;
    end: string | Date;
}, {
    start: string | Date;
    end: string | Date;
}>;
export type GovDealsDateRange = z.infer<typeof GovDealsDateRangeSchema>;
/**
 * Value range for contract amounts
 */
export declare const GovDealsValueRangeSchema: z.ZodObject<{
    min: z.ZodOptional<z.ZodNumber>;
    max: z.ZodOptional<z.ZodNumber>;
    currency: z.ZodOptional<z.ZodDefault<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    min?: number | undefined;
    max?: number | undefined;
    currency?: string | undefined;
}, {
    min?: number | undefined;
    max?: number | undefined;
    currency?: string | undefined;
}>;
export type GovDealsValueRange = z.infer<typeof GovDealsValueRangeSchema>;
/**
 * Pagination parameters for API requests
 */
export declare const GovDealsPaginationParamsSchema: z.ZodObject<{
    page: z.ZodOptional<z.ZodNumber>;
    limit: z.ZodOptional<z.ZodNumber>;
    offset: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    page?: number | undefined;
    limit?: number | undefined;
    offset?: number | undefined;
}, {
    page?: number | undefined;
    limit?: number | undefined;
    offset?: number | undefined;
}>;
export type GovDealsPaginationParams = z.infer<typeof GovDealsPaginationParamsSchema>;
/**
 * Sort order for results
 */
export declare const GovDealsSortOrderSchema: z.ZodEnum<["asc", "desc"]>;
export type GovDealsSortOrder = z.infer<typeof GovDealsSortOrderSchema>;
/**
 * API error response
 */
export declare const GovDealsErrorResponseSchema: z.ZodObject<{
    code: z.ZodString;
    message: z.ZodString;
    details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
    code: string;
    message: string;
    details?: Record<string, unknown> | undefined;
}, {
    code: string;
    message: string;
    details?: Record<string, unknown> | undefined;
}>;
export type GovDealsErrorResponse = z.infer<typeof GovDealsErrorResponseSchema>;
/**
 * API response wrapper
 */
export declare const GovDealsApiResponseSchema: <T extends z.ZodTypeAny>(dataSchema: T) => z.ZodObject<{
    data: T;
    metadata: z.ZodOptional<z.ZodObject<{
        totalRecords: z.ZodOptional<z.ZodNumber>;
        page: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        hasMore: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    data: T;
    metadata: z.ZodOptional<z.ZodObject<{
        totalRecords: z.ZodOptional<z.ZodNumber>;
        page: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        hasMore: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }>>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    data: T;
    metadata: z.ZodOptional<z.ZodObject<{
        totalRecords: z.ZodOptional<z.ZodNumber>;
        page: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        hasMore: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }>>;
}>, any>[k]; } : never, z.baseObjectInputType<{
    data: T;
    metadata: z.ZodOptional<z.ZodObject<{
        totalRecords: z.ZodOptional<z.ZodNumber>;
        page: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        hasMore: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }>>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
    data: T;
    metadata: z.ZodOptional<z.ZodObject<{
        totalRecords: z.ZodOptional<z.ZodNumber>;
        page: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        hasMore: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }, {
        page?: number | undefined;
        limit?: number | undefined;
        totalRecords?: number | undefined;
        hasMore?: boolean | undefined;
    }>>;
}>[k_1]; } : never>;
export type GovDealsApiResponse<T> = {
    data: T;
    metadata?: {
        totalRecords?: number;
        page?: number;
        limit?: number;
        hasMore?: boolean;
    };
};
