/**
 * Domain owner tracking — links premium/unavailable domains to their owners
 * via open-contacts integration or local owner records.
 */
export interface DomainOwner {
    id: string;
    domain_id: string;
    contact_id: string | null;
    owner_name: string | null;
    owner_email: string | null;
    owner_phone: string | null;
    owner_organization: string | null;
    source: DomainOwnerSource;
    verified: boolean;
    notes: string | null;
    created_at: string;
    updated_at: string;
}
export type DomainOwnerSource = (typeof DOMAIN_OWNER_SOURCES)[number];
export declare const DOMAIN_OWNER_SOURCES: readonly ["whois", "manual", "brandsight", "import"];
export interface CreateDomainOwnerInput {
    domain_id: string;
    contact_id?: string;
    owner_name?: string;
    owner_email?: string;
    owner_phone?: string;
    owner_organization?: string;
    source?: DomainOwnerSource;
    verified?: boolean;
    notes?: string;
}
export declare function createDomainOwner(input: CreateDomainOwnerInput): DomainOwner;
export declare function getDomainOwner(id: string): DomainOwner | null;
export declare function getDomainOwnerByDomain(domainId: string): DomainOwner | null;
export declare function getDomainOwnerByDomainName(domainName: string): DomainOwner | null;
export declare function listDomainOwners(options?: {
    search?: string;
    source?: DomainOwnerSource;
    verified?: boolean;
}): DomainOwner[];
export declare function updateDomainOwner(id: string, input: Partial<CreateDomainOwnerInput>): DomainOwner | null;
export declare function deleteDomainOwner(id: string): boolean;
/**
 * Extract owner info from WHOIS data (RDAP JSON or CLI raw text) and create/update a domain owner record.
 */
export declare function parseWhoisOwner(whoisData: string): {
    name: string | null;
    email: string | null;
    phone: string | null;
    organization: string | null;
} | null;
export interface DomainWithOwner {
    domain_name: string;
    domain_status: string;
    is_premium: boolean;
    premium_price: number | null;
    owner_name: string | null;
    owner_email: string | null;
    owner_organization: string | null;
    contact_id: string | null;
    source: DomainOwnerSource | null;
    verified: boolean;
}
export declare function listDomainsWithOwners(): DomainWithOwner[];
//# sourceMappingURL=domain-owners.d.ts.map