import mongoose from 'mongoose';
export declare const UserApiKeySchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
    timestamps: true;
    versionKey: false;
}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    userId: string;
    name: string;
    keyId: string;
    keyHash: string;
    keyPrefix: string;
    permissions: string[];
    isActive: boolean;
    lastUsed?: NativeDate;
    expiresAt?: NativeDate;
    usageStats?: {
        totalCost: number;
        totalRequests: number;
        lastResetDate: NativeDate;
    };
}, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    userId: string;
    name: string;
    keyId: string;
    keyHash: string;
    keyPrefix: string;
    permissions: string[];
    isActive: boolean;
    lastUsed?: NativeDate;
    expiresAt?: NativeDate;
    usageStats?: {
        totalCost: number;
        totalRequests: number;
        lastResetDate: NativeDate;
    };
}>, {}> & mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    userId: string;
    name: string;
    keyId: string;
    keyHash: string;
    keyPrefix: string;
    permissions: string[];
    isActive: boolean;
    lastUsed?: NativeDate;
    expiresAt?: NativeDate;
    usageStats?: {
        totalCost: number;
        totalRequests: number;
        lastResetDate: NativeDate;
    };
}> & {
    _id: mongoose.Types.ObjectId;
} & {
    __v: number;
}>;
export declare const UserSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
    timestamps: true;
    versionKey: false;
    _id: false;
}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    _id: string;
    name: string;
    provider: string;
    isActive: boolean;
    email: string;
    providerId: string;
    lastLogin: NativeDate;
    role: "user" | "admin";
    image?: string;
    balance?: {
        currentAmount: number;
        currency: string;
        lastUpdated: NativeDate;
    };
    apiKeyQuota?: {
        maxKeys: number;
        currentCount: number;
    };
}, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    _id: string;
    name: string;
    provider: string;
    isActive: boolean;
    email: string;
    providerId: string;
    lastLogin: NativeDate;
    role: "user" | "admin";
    image?: string;
    balance?: {
        currentAmount: number;
        currency: string;
        lastUpdated: NativeDate;
    };
    apiKeyQuota?: {
        maxKeys: number;
        currentCount: number;
    };
}>, {}> & mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    _id: string;
    name: string;
    provider: string;
    isActive: boolean;
    email: string;
    providerId: string;
    lastLogin: NativeDate;
    role: "user" | "admin";
    image?: string;
    balance?: {
        currentAmount: number;
        currency: string;
        lastUpdated: NativeDate;
    };
    apiKeyQuota?: {
        maxKeys: number;
        currentCount: number;
    };
}> & Required<{
    _id: string;
}> & {
    __v: number;
}>;
export declare const TransactionSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
    timestamps: true;
}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    userId: string;
    type: "usage" | "initial" | "deposit" | "refund" | "adjustment";
    balanceAfter: number;
    status: "pending" | "completed" | "failed" | "refunded";
    description: string;
    amount: number;
    costBreakdown?: {
        inputCost: number;
        outputCost: number;
        thinkingCost: number;
    };
    paymentReference?: string;
    metadata?: {
        ipAddress: string;
        userAgent: string;
        adminId: string;
    };
    tokenUsage?: {
        thinkingTokens: number;
        totalTokens: number;
        reasoningModelsUsed: number;
    };
}, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    userId: string;
    type: "usage" | "initial" | "deposit" | "refund" | "adjustment";
    balanceAfter: number;
    status: "pending" | "completed" | "failed" | "refunded";
    description: string;
    amount: number;
    costBreakdown?: {
        inputCost: number;
        outputCost: number;
        thinkingCost: number;
    };
    paymentReference?: string;
    metadata?: {
        ipAddress: string;
        userAgent: string;
        adminId: string;
    };
    tokenUsage?: {
        thinkingTokens: number;
        totalTokens: number;
        reasoningModelsUsed: number;
    };
}>, {}> & mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    userId: string;
    type: "usage" | "initial" | "deposit" | "refund" | "adjustment";
    balanceAfter: number;
    status: "pending" | "completed" | "failed" | "refunded";
    description: string;
    amount: number;
    costBreakdown?: {
        inputCost: number;
        outputCost: number;
        thinkingCost: number;
    };
    paymentReference?: string;
    metadata?: {
        ipAddress: string;
        userAgent: string;
        adminId: string;
    };
    tokenUsage?: {
        thinkingTokens: number;
        totalTokens: number;
        reasoningModelsUsed: number;
    };
}> & {
    _id: mongoose.Types.ObjectId;
} & {
    __v: number;
}>;
//# sourceMappingURL=ExistingModels.d.ts.map